디자인 패턴/생성 패턴

Abstract Factory 패턴

언린이 2021. 9. 23. 17:02

Abstract Factory 패턴은 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴입니다.

 

 

구조

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

 

 

활용 상황

  • Factory 패턴을 쓰던 상황에서, 팩토리의 종류를 늘려야 할때 유용합니다.
  • 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성해야 할때 유용합니다.

 

 

Abstract Factory 패턴의 장단점

  • 장점
    • 객체를 생성하는 코드를 분리하여 클라이언트 코드와 결합도(의존성)를 낮춥니다.
    • 인터페이스를 바탕으로 유연성과 확장성이 뛰어난 코드 제작이 가능합니다.
    • 객체의 생성을 한 군데에서 할 수 있습니다.
  • 단점
    • 새로 생성할 객체의 종류가 늘어날때마다 클래스가 많아집니다.