본문 바로가기

Windows Developer/Design Pattern

[Abstract Factory] 추상팩토리

의도 : 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다












shapes[0] = factory->createCurvedInstance();    //shapes[0] = new Circle;
shapes[1] = factory->createStraightInstance(); //shapes[1] = new Square;
shapes[2] = factory->createCurvedInstance(); //shapes[2] = new Circle;

#define ROBUST 일 경우 출력결과

Ellipse0: draw
Rectangle1: draw
Ellipse2: draw

  [활용성]
- 객체가 생성되거나 구성 - 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때
- 여러 제품군 중 하나를 선책해서 시스템을 설정해야 하고 한번 구성한 제품을 다른 것으로 대체할 수 있을  
   때
- 관련된 제품 객체들이 함께 사용되도록 설계되었고, 이 부분에 대한 제약이 외부에도 지켜지도록 하고 싶을    때
- 제품에 대한 클래스 라이브러리를 제공하고, 그들의 구현이 아닌 인터페이스를 노출시키고 싶을 때 



'Windows Developer > Design Pattern' 카테고리의 다른 글

[디자인패턴] 싱글톤  (0) 2011.06.02
[Template Method design pattern 2]  (0) 2011.01.06
[Template Method design pattern 1]  (0) 2011.01.06
[Adapter design pattern]  (0) 2011.01.06