본문 바로가기

[ programing ]/Design Patterns

팩토리 패턴(Pactory Patterns)




[ 팩토리 패턴(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"); // 주문을 해준다... 뉴욕스토어에 치즈 피자로....