반응형
팩토리 메서드(Factory Method) 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 객체의 생성을 서브클래스에서 처리하도록 하는 패턴입니다.
이를 통해 객체 생성의 유연성을 확보하고, 객체 생성 로직을 캡슐화하여 유지보수성을 향상시킬 수 있습니다.
팩토리 메서드 패턴은 크게 두 가지 요소로 구성됩니다.
- Creator(생성자) : 객체를 생성하는 인터페이스를 정의합니다. 실제 객체 생성은 서브클래스에서 처리합니다.
- Concrete Creator(구체적 생성자) : Creator 인터페이스를 구현하여 객체를 생성합니다.
팩토리 메서드 패턴의 예시로, 공장에서 제품을 생산하는 과정을 생각해볼 수 있습니다.
공장은 제품을 생성하기 위한 템플릿을 제공하고, 제품의 종류에 따라 실제 제품을 생성하는 일은 각 제품의 전문가(서브클래스)에게 맡깁니다.
이를 구체화하면 다음과 같습니다.
Creator : 제품을 생성하기 위한 인터페이스를 정의합니다.
class ProductCreator { public: virtual ~ProductCreator() {} virtual Product* createProduct() = 0; };
Concrete Creator : Creator 인터페이스를 구현하여 객체를 생성합니다.
class ProductACreator : public ProductCreator { public: virtual Product* createProduct() { return new ProductA(); } }; class ProductBCreator : public ProductCreator { public: virtual Product* createProduct() { return new ProductB(); } };
이제 각 제품 전문가(서브클래스)는 자신이 생성할 제품에 맞게 Concrete Creator를 구현하면 됩니다.
이를 통해 제품 생성의 유연성과 확장성을 보장할 수 있습니다.
'소프트웨어 디자인 패턴' 카테고리의 다른 글
디자인 패턴. 싱글톤(Singleton) 패턴 (0) | 2023.03.26 |
---|---|
디자인 패턴. 생성 패턴(Creational Patterns) (0) | 2023.03.25 |
GoF의 디자인 패턴 (0) | 2023.03.24 |
디자인 패턴. MVVM (Model-View-ViewModel) (0) | 2023.03.11 |
디자인 패턴. MVP (Model-View-Presenter) (0) | 2023.03.10 |