1. 팩토리 메서드 패턴이란?
- 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴
- 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴
- 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브 클래스가 내리도록 한다.
2. 팩토리 메서드 패턴 예시
Phone 인터페이스
public interface Phone {
void turnOn();
}
IPhone 클래스
public class IPhone implements Phone {
@Override
public void turnOn() {
System.out.println("IPhone turn on");
}
}
Galaxy 클래스
public class Galaxy implements Phone {
@Override
public void turnOn() {
System.out.println("Galaxy turn on");
}
}
PhoneFactory 클래스
public class PhoneFactory {
public static Phone getPhone(String company) {
if ("Apple".equalsIgnoreCase(company)) retrn new IPhone();
else if ("Samsung".equalsIgnoreCase(company)) retrn new Galaxy();
return null;
}
}
getPhone 메서드를 이용하여 Phone의 서브클래스에 대한 정보를 알지 못한 채 인스턴스를 생성할 수 있게 된다.
Main 클래스
public class Main {
public static void main(String[] args) {
Phone iPhone = PhoneFactory.getPhone("Apple");
Phone galaxy = PhoneFactory.getPhone("Samsung");
iPhone.turnOn();
galaxy.turnOn();
}
}
// 출력
// IPhone turn on
// Galaxy turn on'디자인 패턴 > 생성 패턴' 카테고리의 다른 글
| 싱글톤 패턴 (Singleton Pattern) (0) | 2021.08.26 |
|---|