본문 바로가기
etc/design patterns

1-1. 추상 팩토리 패턴

by 빠니몽 2021. 9. 9.

21.07.28

 

1. 정의

상세화된 서브클래스를 정의하지 않고도 여러 객체의 군을 생성하기 위한 인터페이스를 제공하는 패턴

다른 이름 : Kit(키트)

 

1-1. 구조

  • AbstractFactory : 개념적 제품에 대한 객체를 생성하는 연산으로 인터페이스 정의
  • ConcreteFactory : 구체적인 제품에 대한 객체를 생성하는 연산 구현
  • AbstractProduct : 개념적 제품 객체에 대한 인터페이스 정의
  • ConcreteProduct : 구체적으로 팩토리가 생성할 객체를 정의하고 AbstractProduct가 정의하는 인터페이스를 구현
  • Client : AbstractFactory와 AbstractProduct 클래스에 선언된 인터페이스를 사용

 

1-2. 활용성

  • 객체가 생성되거나 구성, 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때
  • 여러 제품군 중 하나를 선택해서 시스템을 설정해야 하고 한 번 구성한 제품을 다른 것으로 대체할 수 있을 때
  • 관련된 제품 객체들이 함께 사용되도록 설계되었고, 이 부분에 대한 제약이 외부에도 지켜지도록 하고 싶을 때
  • 제품에 대한 클래스 라이브러리를 제공하고, 그들의 구현이 아닌 인터페이스를 노출시키고 싶을 때

 

1-3. 장단점

장점 1. 구체적인 클래스 분리 가능

장점 2. 제품군을 쉽게 대체할 수 있음

장점 3. 제품 사이의 일관성 증진

단점 1. 새로운 종류의 제품 제공은 어려움

 

 

 

 

 

'etc > design patterns' 카테고리의 다른 글

1-2. 빌더 패턴  (0) 2021.10.01
1. 생성패턴  (0) 2021.09.04