본문 바로가기

프로그래밍 강의 메모/코딩으로 학습하는 GoF의 디자인 패턴_백기선

객체 생성과 관련 디자인 패턴 > 추상 팩토리 패턴(Abstract Factory Pattern)

https://inf.run/6Shr

 

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

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

www.inflearn.com

 

 

추상 팩토리 패턴

  • 객체 생성 관련 디자인 패턴.
  • 서로 관련있는 여러 객체를 만들어주는 인터페이스.
  • 구체적으로 어떤 클래스의 인스턴스를 사용하는지 감출 수 있다.
  • 클라이언트 코드에서 구체적인 클래스의 의존성을 제거한다.

 

 

 

구체적인 팩토리에서 구체적인 인스턴스를 만드는 것까지는 팩토리 메서드 패턴과 굉장히 유사하지만,

초점이 팩토리를 사용하는 클라이언트 쪽에 있다.

추상 팩토리 패턴의 목적은 팩토리에서 인스턴스를 만들어 사용하는 클라이언트 코드를 인터페이스 기반으로 구성하기 위한 패턴이다.

그래서 모양은 팩토리쪽을 중점적으로 보면 팩토리 메서드 패턴과 굉장히 유사하지만, 

팩토리를 사용하는 쪽이랑 같이봐야 이 패턴에 의미가 있다.

 



 

 

팩토리 메서드 패턴과 추상 팩토리 패턴은 둘 다 구체적인 객체 생성 과정을 추상화한 인터페이스를 제공한다는 점에서 모양과 효과가 비슷하다.

 

하지만 서로 관점이 다르다.

팩토리 메서드 패턴은 ‘팩토리를 구현하는 방법’에 초점을 둔다.

추상 팩토리 패턴은 ‘팩토리를 사용하는 방법’에 초점을 둔다.

 

그리고 서로 목적이 다르다.

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

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

 

 

 

 

 

 

https://refactoring.guru/ko/design-patterns/abstract-factory

 

Abstract Factory

Solution The first thing the Abstract Factory pattern suggests is to explicitly declare interfaces for each distinct product of the product family (e.g., chair, sofa or coffee table). Then you can make all variants of products follow those interfaces. For

refactoring.guru