관련 부품을 조합해서 제품 만들기

 

 * Abstract Factory Pattern

  - factory 객체에게 객체 생성을 위임한다

  - 팩토리 메소드 패턴보다 한 단계 더 높은 추상화 수준이다

 

* 의도

   - 특정 객체를 전달하기 위해 하나 이상의 구체 클래스에 생성을 위임하는 인터페이스를 제공한다

 

* 활용

  - 객체 생성이 이를 활용하는 시스템과 독립적이어야 할 때

  - 시스템이 여러 객체 군을 사용할 수 있어야 할 때

  - 구체 클래스들이 클라이언트로부터 분리되어야 할 때

 

* 디자인 원리

 

- AbstractFactory : abstract product 객체들을 생성하는 동작을 위한 인터페이스를 선언한다

- ConcreteFactory : Product 객체를 생성하는 동작을 구현한다

- AbstractProduct : product 객체 타입을 위한 인터페이스를 선언한다

- ConcreteProduct : concrete facotry 에서 생성할 product 객체를 정의한다

                         : AbstractProduct 인터페이스를 구현한다

- client : AbstractFactory 와 AbstractProduct 클래스들에서 선언된 인터페이스만 사용한다

 

 

- 추상 팩토리 패턴은 composition + delegation 을 사용한다 (object scope)

- 팩토리 메소드 패턴은 상속을 사용한다 (class scope)

 

- product 군 중 하나를 사용해야 할때,

- product 객체 군이 함게 사용하도록 설계되어있을 때

 

- 팩토리는 책임과 파트를 생성하는 과정을 캡슐화한다

- 구현 클래스에서 클라이언트를 격리한다

- product 군을 쉽게 교환한다

- 새로운 종류의 product 를 지원하기 어렵다

'SW 공학 > ::: 패턴' 카테고리의 다른 글

///[GoF] Singleton Pattern  (0) 2021.09.26
///[GoF] Builder Pattern  (0) 2021.09.26
///[GoF] Factory Method Pattern  (0) 2021.09.26
///[GoF] Mediator Pattern  (0) 2021.09.26
///[GoF] State Pattern  (0) 2021.09.26

+ Recent posts