Search
Duplicate
🌖

Simple Factory

객체의 생성과 사용은 분리되어야할 때가 있다. 이를 위해 팩토리 패턴을 사용해 객체를 사용만 하는 객체에게 생성의 부담을 덜어줄 수 있다.
생성을 무분별하게할 경우, 원치 않는 사이드 이펙트가 발생할 수 있다.
인터페이스를 기반으로 다형성을 활용한 팩토리 패턴을 사용하면 변경에 닫혀있고 확장에 열려있는 유연한 코드를 짤 수 있다.
단순히 객체 생성의 책임을 다른 객체에게 위임하는 것이다. 이때 Factory라는 네이밍을 사용하므로 Simple Factory라고 부른다.
Pizza orderPizza(String type){ Pizza pizza; if(type.equals("cheese")){ pizza = new CheesePizza() } else if(type.equals("greel"){ pizza = new GreekPizza(); } else if (type.equals("pepperoni"){ pizza = new PepperopniPizza(); } else if (type.equals("clam"){ pizza = new ClamPizza(); } else if (type.equals("veggie"){ pizza new VeggiePizza(); } pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; }
Java
복사
public class PizzaStore{ SimplePizzaFactory factory; public PizzaStore(SimplePizzaFactory factory){ this.factory = factory; } Pizza orderPizza(String type){ Pizza pizza; pizza = factory.createPizza(type); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; } }
Java
복사