팩토리 패턴이란?
- 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만드는 클래스의 결정은 서브 클래스에서 내리는 패턴
- 객체를 생성하는 메소드를 추상클래스의 추상메소드로 미리 정의한다.
// 객체를 생성할 추상 클래스 정의
public abstract class PizzaFactory {
abstract Pizza createPizza(String name);
}
- 어떤 클래스가 만들어질 지는 CheesePizzaFactory가 정한다.
public class CheesePizzaFactory extends PizzaFactory{
@Override
Pizza createPizza(String name) {
switch (name) {
case "pickle":
return new CheesePicklePizza();
case "onion":
return new CheeseOnionPizza();
}
return null;
}
}
- 실제 실행 사용
public class GiveMePizza {
public static void main(String[] args) {
// 팩토리 패턴만 보기 위해 일단 바로 new 선언한다.
PizzaFactory pizzaFactory = new CheesePizzaFactory();
Pizza pizza = pizzaFactory.createPizza("pickle");
System.out.println("pizza = " + pizza);
}
}
'Computer Science > Design Pattern' 카테고리의 다른 글
[디자인 패턴] 데코레이터 패턴 (feat. Spring) (0) | 2024.01.04 |
---|---|
[디자인 패턴] 프록시 패턴 (feat. Spring) (0) | 2023.12.28 |
[디자인 패턴] 전략 패턴 (feat. Spring) (0) | 2023.12.22 |
[디자인 패턴] 템플릿 메서드 패턴 (feat. Spring) (0) | 2023.12.14 |
이터레이터 패턴(Iterator Pattern) (0) | 2022.07.05 |