✍️ 팩토리 메서드 패턴 vs 추상 팩토리 패턴
팩토리 메서드 패턴 그리고 추상 팩토리 패턴 모두 객체(제품, 이하 객체)를 만드는 과정을 추상화한 패턴임은 동일하다.
다만 관점의 차이로 구조가 사뭇 다른데,
팩토리 메서드 패턴은 객체를 만드는 과정에 집중한 패턴으로, 구체적인 객체의 생성을 메서드로 추상화 하고 ConcreteCreator의 구현 메서드에서 구체적인 객체를 만들어 팩토리 메서드에 제공한다.
정리하면 1.추상화된 객체 반환하는 추상 메서드, 2.구체적인 객체를 생성하는 구현 메서드, 3. 추상 메서드를 호출하는 팩토리 메서드의 조합이라고 할 수 있다
반면 추상 팩토리 패턴은 팩토리를 사용하는 클라이언트에 집중한 패턴으로, 클라이언트는 ConcreteFactory가 제공하는 추상화된 인터페이스를 사용함으로써 구체적인 객체를 직접 참조할 필요가 없어진다.
정리하면 1.객체를 생성하는 추상 메서드를 가진 인터페이스 2.이를 구현한 ConcreteFactory, 3. ConcreteFactory를 주입받아 사용하는 클라이언트에 초점이 맞춰져 있다.
그리고 두 패턴의 목적이 다른데,
팩토리 메서드 패턴은 구체적인 객체 생성과정을 하위 또는 구체적인 클래스로 옮기는 것이 목적이고
추상 팩토리 패턴은 관련 있는 여러 객체를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 것이 목적이다.
인프런의 백기선님의 강의 코딩으로 학습하는 GoF의 디자인 패턴을 참고해서 작성했습니다.
'Java > Design Pattern with Java' 카테고리의 다른 글
[디자인 패턴] 구상 클래스(Concrete class)란? (0) | 2022.05.08 |
---|---|
[객체 생성 패턴] Chapter 3-4. Abstract Factory Pattern : Java와 Spring에서 찾아보는 추상 팩토리 패턴 (0) | 2022.04.26 |
[객체 생성 패턴] Chapter 3-2. Abstract Factory Pattern : 패턴 적용하기 (0) | 2022.04.18 |
[객체 생성 패턴] Chapter 3-1. Abstract Factory Pattern : 패턴 소개 (0) | 2022.04.05 |
[객체 생성 패턴] Chapter 2-5. Factory Method Pattern : 자바에서 찾아보는 팩토리 메서드 패턴 (0) | 2022.04.04 |