팩토리 메서드
객체 생성을 캡슐화 하는 패턴. 객체지향 디자인 패턴이다.
객체 생성 처리를 서브 클래스로 분리하여 처리하도록 캡슐화 한다.
객체 생성 코드를 별도의 클래스 + 메서드로 분리하여 객체 생성의 변화에 대비하는 것에 유용.
객체를 생성하는 메서드를 팩토리 메서드로 오해하기 쉽다!!
ex)
public abstract class Pizza {
public abstract String getPizzaType();
}
class PotatoPizza extends Pizza{
...
@Override
public String getPizzaType();
...
}
public abstract class Factory {
abstract Pizza createPizza(String name);
}
class PizzaFactory extends Factory{
@Override
public Pizza cratePizza(String name){
switch(name){
case "Potato":
return new Pizza("Potato");
...
}
...
}