티스토리 뷰

추상 팩토리 ( Abstract Factory ) 패턴


🔥 추상 팩토리 패턴은 객체 생성(Create) 패턴 중 하나로 서로 관련된 객체를 여러 개를 묶어 서 생성해 줄 팩토리 객체를 제공하는 방식이다.

 

객체 모델

 

 

AbstractFactory

구체적인 팩토리 를 추상화 하여 클라이언트 입장에서 ConcreateFactory 와 낮은 결합도(Loose coupling) 를 유지하기 위해 존재하는 추상화된 팩토리.

 

클라이언트와 팩토리가 낮은 결합도를 가진다는 것은 팩토리 확장이 쉽다는 의미.

 

 

Product

구체적인 프로덕트를 추상화 하여 클라이언트 입장에서 ConcreatProduct 와 낮은 결합도(Loose coupling) 를 유지하기 위해 존재하는 추상화된 팩토리.

 

클라이언트와 프로덕트가 낮은 결합도를 가진다는 것은 프로덕트 확장이 쉽다는 의미.

 

장점

  • 구체적인 클래스를 분리하고 숨겨 Loose coupling 을 구성하여 변경에는 닫혀있고 확장에는 열려있는 코드 작성이 가능하다.

단점

  • 클래스 수의 증가로 코드 복잡도가 높아진다.

 

팩토리 메소드 패턴과 차이

목적 차이
  • 팩토리 메소드 패턴
    • 팩토리의 구체적인 객체 생성을 상위 클래스에서 서브 클래스로 옮기는 것이 목적
  • 추상 팩토리 패턴
    • 여러 객체를 구체적인 클래스에 의존하지 않고 클라이언트에게 제공하여 클라이언트가 구체적인 클래스에 의존하지 않도록 하는 방법.

 

예제코드

위 객체 모델에서 소개한 예제 코드
 

GitHub - icraft2170/Blog-Example-Code

Contribute to icraft2170/Blog-Example-Code development by creating an account on GitHub.

github.com

 

참조

코딩으로 학습하는 GoF 디자인 패턴

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com

 

댓글