본문 바로가기
Object-Oriented Programming/Design Pattern

Abstract Factory Pattern, 추상 팩토리 패턴

by yongmin.Lee 2022. 5. 11.

Abstract Factory Pattern ?

Abstract Factory Pattern

  • 객체를 생성하려면 해당 객체를 구체적으로 정의한 코드에 대해 소스 코드 의존성이 발생 !
  • 구체적인 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 생성하는 인터페이스를 제공하는 패턴
  • 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 "군"을 생성하기 위한 인터페이스를 제공합니다.

 

Application - Abstract Factory Pattern

  • AbstractFactory : 실제 팩토리 클래스의 공통 인터페이스
  • ConcreteFactoryImpl : 구체적인 팩토리 클래스로 AbstractFactory 클래스의 추상 메서드를 오버라이드함으로써 구체적인 제품을 생성한다.
  • AbstractProduct : 제품의 공통 인터페이스
  • ConcreteProductImpl : 구체적인 팩토리 클래스에서 생성되는 구체적인 제품
  • Application은 AbstractFactory 인터페이스의 makeSvc 메소드를 호출하고, AbstractProduct 인터페이스로 리턴된 ConcreteProductImpl를 사용한다

 

Abstract Factory Pattern 장점

  •  클래스를 생산하는 부분과 사용하는 부분을 분리하여 느슨하게 결합 -> 유연성과 확장성
  • 의존을 피하고 추상화를 지향할 수 있다.
  • 구현 클래스에 직접 의존하지 않고도 서로 관련된 객체들로 이루어진 제품군을 만들 수 있다.

 

 

 

 

 

 

 

 

 

참고자료

https://johngrib.github.io/wiki/pattern/

https://flower0.tistory.com/416

https://gmlwjd9405.github.io/2018/08/08/abstract-factory-pattern.html

https://eunjin3786.tistory.com/530