[객체 생성 패턴] Chapter 3-3. Abstract Factory Pattern : vs 팩토리 메서드 패턴

 

✍️ 팩토리 메서드 패턴 vs 추상 팩토리 패턴 

팩토리 메서드 패턴 그리고 추상 팩토리 패턴 모두 객체(제품, 이하 객체)를 만드는 과정을 추상화한 패턴임은 동일하다.

 

다만 관점의 차이로 구조가 사뭇 다른데,

팩토리 메서드 패턴객체를 만드는 과정에 집중한 패턴으로, 구체적인 객체의 생성을 메서드로 추상화 하고 ConcreteCreator의 구현 메서드에서 구체적인 객체를 만들어 팩토리 메서드에 제공한다.

정리하면 1.추상화된 객체 반환하는 추상 메서드, 2.구체적인 객체를 생성하는 구현 메서드, 3. 추상 메서드를 호출하는 팩토리 메서드의 조합이라고 할 수 있다

 

반면 추상 팩토리 패턴팩토리를 사용하는 클라이언트에 집중한 패턴으로, 클라이언트는 ConcreteFactory가 제공하는 추상화된 인터페이스를 사용함으로써 구체적인 객체를 직접 참조할 필요가 없어진다.

정리하면 1.객체를 생성하는 추상 메서드를 가진 인터페이스 2.이를 구현한 ConcreteFactory, 3. ConcreteFactory를 주입받아 사용하는 클라이언트에 초점이 맞춰져 있다.

 

그리고 두 패턴의 목적이 다른데,

팩토리 메서드 패턴은 구체적인 객체 생성과정을 하위 또는 구체적인 클래스로 옮기는 것이 목적이고

 

추상 팩토리 패턴은 관련 있는 여러 객체를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 것이 목적이다.

 

 

 

인프런의 백기선님의 강의 코딩으로 학습하는 GoF의 디자인 패턴을 참고해서 작성했습니다.

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com