추상 팩토리 패턴

Jmnote (토론 | 기여)님의 2022년 4월 25일 (월) 01:27 판 (→‎개요)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

abstract factory pattern
추상 팩토리 패턴
  • 생성 패턴의 하나
  • 객체를 통해 제품을 생산
  • 부품을 조립해서 제품을 만드는 구조
  • 팩토리 객체에 객체 생성을 위임한다.
  • Client의 인스턴스는 추상 팩토리를 이용하며 추상 팩토리는 구상 팩토리(ConcreteFactory)에 객체 생성을 맡긴다.
  • Client는 추상 팩토리를 통해 추상 Product 타입의 객체를 얻는다.
  • 객체 컴포지션을 활용한다.

 

2 예제 (java)[ | ]

/* GUIFactory example -- */

public class ApplicationRunner {
    public static void main(String[] args) {
        new Application(createOsSpecificFactory());
    }
 
    public static GUIFactory createOsSpecificFactory() {
        if (System.getProperty("os.name").startsWith("Windows")) return new WinFactory();
        return new OSXFactory();
    }
}
 
interface Button {
    void paint();
}
 
interface GUIFactory {
    Button createButton();
}
 
class WinFactory implements GUIFactory {
    public Button createButton() {
        return new WinButton();
    }
}
 
class OSXFactory implements GUIFactory {
    public Button createButton() {
        return new OSXButton();
    }
}
 
class WinButton implements Button {
    public void paint() {
        System.out.println("I'm a WinButton");
    }
}
 
class OSXButton implements Button {
    public void paint() {
        System.out.println("I'm an OSXButton");
    }
}
 
class Application {
    public Application(GUIFactory factory) {
        Button button = factory.createButton();
        button.paint();
    }
}

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}