Abstract Factory Pattern
Abstract factory pattern
groups object factories that have a common theme.
구체적인 생성 구현
은 하위 클래스에게 맡기고 추상적인 팩토리들을 조합한다.
UML
구성 요소
AbstrctFactory
:AbstractProduct
의 생성 책임을 가짐.AbstractProduct
: 추상 생성된 instance 의 interface 를 정의.ConcreteFactory
:AbstractProduct
를 구현하여 대응되는 theme 의ConcreteProduct
를 생성, 그룹지음.ConcreteProduct
:AbstractProduct
의 interface를 구현.Client
:AbstractFactory
와AbstractProduct
를 사용해 주어진 역할을 수행.
확장
ConcreteFactory
를 확장하는 것은 매우 쉽다. 해당 interface 가 이미 구체화 되어 있으며,Abstract
파트를 수정할 필요가 없다.Product
를 추가하게 되면 수정해야할 부분이 매우 많아진다.
관련 패턴
Builder
:Builder
는 복잡한 instance를 단계적으로 만든다면,Abstract Factory
는 추상적인 부품의 조합이란 측면으로 다가간다.Factory Method
: 제품이나 부품을 만들 때Factory Method
로 되는 경우가 종종 있다.Composite
:Abstract Factory
로 만들어진 제품이Composite
로 되는 경우가 종종 있다.Singleton
:ConcreteFactory
가Singleton
으로 된 경우가 종종 있다.