반응형
* 본 게시물은 HeadFirst Design Patterns을 기준으로 간략한 내용만 정리하였음을 밝힙니다.
1. 팩토리 패턴
팩토리 패턴은 OCP의 개념으로 스트래티지 패턴을 적절히 혼합하여 특정 특징을 가진 인스턴스를 자동으로 생성해 주게 하는 패턴이다. 주문을 하면 특정 인스턴스를 자동으로 만들어 준다고 하여 팩토리 패턴이라고 불리운다.
2. 팩토리 패턴의 정의
중복적인 부분은 그대로 두고 특징적인 부분만 인스턴스해주는 팩토리 클래스를 이용해 인터페이스화된 인스턴스를 만든다음 그 인스턴로 다음 작업을 진행하는 방법이다.
[예]
피자만들기
각가지 토핑 재로를 얻는다 <-- 팩토리에서 해당 인스턴스를 가져온다.
피자를 올린다. ---
오븐에 넣는다.
굽는다.
꺼낸다. ----------> 중복된 작업.
3. 팩토리 패턴의 예
// Factory Class -----------------
public class SimplePizzaFatory{
public Pizza SimplePizza(String type){
Pizza pizza = null;
if( type.equals("chees")){
pizza = new Chees();
}else if( type.equals("chees")){
pizza = new Chees();
}else if( type.equals("Boolgogi")){
pizza = new Boolgogi();
}else if( type.equals("Combination")){
pizza = new Combination()
}
return pizza;
}
// Operation Class-------------------
public vlass PizaStore {
SimplePizzaFactory factory;
public PizzaStore(SimplePizzaFactory factory){
this.factory = factory;
}
public Pizza oderPizza(String type){
pizza = factory.createPizza(type);
pizza.action1();
pizza.action2();
pizza.action3();
pizza.action4();
return pizza;
}
}
개념과 코드가 거의 흡사하므로 코드를 참조하면 충분히 이해할 수 있다.
2008. 7. 17. HeadFirst Design Patterns.
1. 팩토리 패턴
팩토리 패턴은 OCP의 개념으로 스트래티지 패턴을 적절히 혼합하여 특정 특징을 가진 인스턴스를 자동으로 생성해 주게 하는 패턴이다. 주문을 하면 특정 인스턴스를 자동으로 만들어 준다고 하여 팩토리 패턴이라고 불리운다.
2. 팩토리 패턴의 정의
중복적인 부분은 그대로 두고 특징적인 부분만 인스턴스해주는 팩토리 클래스를 이용해 인터페이스화된 인스턴스를 만든다음 그 인스턴로 다음 작업을 진행하는 방법이다.
[예]
피자만들기
각가지 토핑 재로를 얻는다 <-- 팩토리에서 해당 인스턴스를 가져온다.
피자를 올린다. ---
오븐에 넣는다.
굽는다.
꺼낸다. ----------> 중복된 작업.
3. 팩토리 패턴의 예
// Factory Class -----------------
public class SimplePizzaFatory{
public Pizza SimplePizza(String type){
Pizza pizza = null;
if( type.equals("chees")){
pizza = new Chees();
}else if( type.equals("chees")){
pizza = new Chees();
}else if( type.equals("Boolgogi")){
pizza = new Boolgogi();
}else if( type.equals("Combination")){
pizza = new Combination()
}
return pizza;
}
// Operation Class-------------------
public vlass PizaStore {
SimplePizzaFactory factory;
public PizzaStore(SimplePizzaFactory factory){
this.factory = factory;
}
public Pizza oderPizza(String type){
pizza = factory.createPizza(type);
pizza.action1();
pizza.action2();
pizza.action3();
pizza.action4();
return pizza;
}
}
개념과 코드가 거의 흡사하므로 코드를 참조하면 충분히 이해할 수 있다.
2008. 7. 17. HeadFirst Design Patterns.
반응형