본문 바로가기

프로그래밍/디자인패턴

추상 팩토리 (Abstract Factory) 패턴



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

 정의: 추상적인 부품을 조립해서 추상적인 제품을 만드는 추상적인 공장 같은 패턴
       : 클라이언트에서 구상 클래스를 지정하지 않으면서도 일군의 객체를 생성할 수 있도록 하는 패턴

활용:
         1. 생성되고 구성되고 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때 
         2. 하나 이상의 제품군들 중 하나를 선택해서 시스템을 설정해야 하고 한번 구성한 제품을 
            다른 것으로 대체 가능할 때
         3. 관련된 객체군을 함께 사용해서 시스템을 설계하고,
            이 제품이 갖는 제약사항을 따라야 할 때
         4. 제품에 대한 클래스 라이브러리를 제공하고, 
            그들의 구현이 아닌 인터페이스를 표현하고 싶을 때
결과:
       1.구체적인 클래스를 분리한다 – 
         추성클래스가 정의한 인터페이스를 통해서만 클라이언트 프로그램을 작성한다
       2. 제품군을 쉽게 대체할 수 있도록 한다
       3. 제품간의 일관성을 증진한다
       4. 새로운 종류의 제품을 제공하기 어렵다 – 
          새로운 제품에 대해 추상 팩토리를 확장하는 것이 어렵다

단점: 클래스 계층이 커질 수 있다

관련 패턴: AbstractFactory 클래스는 Factory Method 패턴이나 Prototype 패턴을 이용해서 구현된다. 
               Concrete Factory의 경우는 Singleton 이 대부분이다



'프로그래밍 > 디자인패턴' 카테고리의 다른 글

GoF 의 디자인 패턴  (0) 2014.06.20
Factory Method  (0) 2014.03.31
Builder Pattern  (0) 2014.03.31
Disign Pattern : 디자인 패턴의 개념  (0) 2014.02.25
GoF 의 디자인 패턴  (0) 2013.04.08