본문 바로가기
GoF의 디자인 패턴

추상 팩토리 패턴

by 아토로 2022. 1. 6.

서로 관련 있는 여러 객체를 만들어주는 인터페이스

 

구체적으로 어떤 클래스의 인스턴스(concreate product)를 사용하는지 감출 수 있다.

구현 방법

클라이언트 코드에서 구체적인 클래스의 의존성을 제거한다.

팩토리 메서드 패턴과 비교

비슷한 점

  • 둘 다 구체적인 객체 생성 과정을 추상화한 인터페이스를 제공한다.

다른 점

  • 관점의 차이
    • 팩토리 메소드 패턴은 “팩토리를 구현하는 방법 (inheritance)”에 초점을 둔다.
    • 추상 팩토리 패턴은 “팩토리를 사용하는 방법 (composition)”에 초점을 둔다.
  • 목적의 차이
    • 팩토리 메소드 패턴은 구체적인 객체 생성 과정을 하위 또는 구체적인 클래스로 옮기는 것이 목적이다.
    • 추상 팩토리 패턴은 관련 있는 여러 객체를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 것이 목적이다.

실무 적용 사례

자바 라이브러리

  • javax.xml.xpath.XPathFactory#newInstance()
  • javax.xml.transform.TransformerFactory#newInstance()
  • javax.xml.parsers.DocumentBuilderFactory#newInstance()

스프링

  • FactoryBean과 그 구현

예제 코드

https://github.com/jsyang-dev/study-designpattern/tree/master/src/main/java/me/study/designpattern/abstractfactory

'GoF의 디자인 패턴' 카테고리의 다른 글

어댑터(Adapter) 패턴  (0) 2022.01.13
프로토타입(Prototype) 패턴  (0) 2022.01.10
빌더(Builder) 패턴  (0) 2022.01.08
팩토리 메소드(Factory method) 패턴  (0) 2022.01.04
싱글톤(Singleton) 패턴  (0) 2021.12.29

댓글