서로 관련 있는 여러 객체를 만들어주는 인터페이스
구체적으로 어떤 클래스의 인스턴스(concreate product)를 사용하는지 감출 수 있다.
구현 방법
클라이언트 코드에서 구체적인 클래스의 의존성을 제거한다.
팩토리 메서드 패턴과 비교
비슷한 점
- 둘 다 구체적인 객체 생성 과정을 추상화한 인터페이스를 제공한다.
다른 점
- 관점의 차이
- 팩토리 메소드 패턴은 “팩토리를 구현하는 방법 (inheritance)”에 초점을 둔다.
- 추상 팩토리 패턴은 “팩토리를 사용하는 방법 (composition)”에 초점을 둔다.
- 목적의 차이
- 팩토리 메소드 패턴은 구체적인 객체 생성 과정을 하위 또는 구체적인 클래스로 옮기는 것이 목적이다.
- 추상 팩토리 패턴은 관련 있는 여러 객체를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 것이 목적이다.
실무 적용 사례
자바 라이브러리
- javax.xml.xpath.XPathFactory#newInstance()
- javax.xml.transform.TransformerFactory#newInstance()
- javax.xml.parsers.DocumentBuilderFactory#newInstance()
스프링
- FactoryBean과 그 구현
예제 코드
'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 |
댓글