Skip to content

Abstract Factory Pattern

Glory Day edited this page Jun 16, 2022 · 7 revisions

About

구체적인 클래스에 의존하지 않고 서로 연과되거나 의존적인 객체들의 조합을 만드는 인터페이스이다.
즉, 관련성이 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다.

UML Class

UML_Class_1

추상 팩토리 패턴 UML 클래스


  • AbstractFactory : 실제 팩토리 클래스의 공통 인터페이스.
  • AbstractProduct : 제품의 공통 인터페이스.
  • ConcreteFactory : 구체적인 팩토리 클래스로 AbstractFactory 클래스의 추상 메소드를 오버라이드함으로써 구체적인 제품을 생성한다.
  • ConcreteProduct : 구제적인 팩토리 클래서에서 생성되는 구체적인 제품.

Example

전에 팩토리 메소드 패턴의 피자 가게를 기반으로 한 예제이다.

Problem

PizzaStore 디자인이 유연한 프레임워크를 가지고, 정한 절차(굽고, 자르고, 상자에 담는 등)는 잘 따르지만, 몇몇 지점 에서 자잘한 재료를 지키지 않는 경우가 발생했다.

각 지점마다 사용하는 재료는 각각 달라 각기 다른 재료를 정하는 방법이 필요하다.

Solution

UML_Class_2

원재료군을 묶은 팩토리 UML 클래스


서로 다른 재료를 제공하려면 원재료군을 처리할 방법을 생각해야 한다.

추상 팩토리로 제품군을 생성하는 인터페이스를 제공하여 코드와 제품을 생산하는 팩토리를 분리할 수 있다.

Code

Clone this wiki locally