[ 팩토리 패턴(Pactory Patterns) ]
public abstract class PizzaStore
{
public Pizza OrderPizza(string type) // Pizza 클래스에 이런 메서드가 있다는 걸 가정하에...
{
Pizza pizza;
pizza = createPizza(type);
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
abstract Pizza createPizza(type);
}
[ 팩토리 패턴(Pactory Patterns) ]
public class NYPizzaStore extends PizzaStore // 추상클래스를 구현해줌으로써 추상 메서드도 같이 구현 해준다.
{
pizza createPizza(string item)
{
if(item.equals("cheese")
{
return new NYStyleCheesePizza();
}
else if(item.equals("pepperoni")
{
return new NYStylePepperoniPizza();
}
else if(item.equals("clam")
{
return new NYStyleClamPizza();
}
else if(item.equals("veggie")
{
return new NYStyleVeggiePizza();
}
else return null;
}
}
[ 팩토리 패턴(Pactory Patterns) ]
public class PizzaTest
{
public static void main(string[] args)
{
PizzaStore nyStore = new NyPizzaStore();
PizzaStore chicagoStore = new ChicagoPizzaStore();// NyPizzaStore 처럼 짜여져있을꺼라는 가정하에...
Pizza pizza = nyStore.orderPizza("cheese");
pizza = chicagoStore.orderPizza("cheese");
}
}
잠이 안왔다.
그래서 머리를 좀 혹사 시켜서 체력도 방전 시켜보려고...
예전에 막 정리 해놓은 거라... 나만 알면 됫다 싶어서 ...대충 정리해서
또 여기다가 쓰려니 ... 책을 뒤지게 되는데...
또 책을 다 해석 하긴 싫고 ㅋㅋㅋㅋ
PizzaStore nyStore = new NyPizzaStore(); // 인스턴스 만들어줬다고 해도 피자는 만들어지지 않는다....
Pizza pizza = nyStore.orderPizza("cheese"); // 주문을 해준다... 뉴욕스토어에 치즈 피자로....