추상 팩토리

ITKHJ·2023년 4월 4일
0

GoF의 디자인 패턴

목록 보기
12/16
post-thumbnail

추상 팩토리 패턴

  • 서로 관련 있는 여러 객체를 만들어주는 인터페이스
  • 인터페이스로 정의하거나 추상 클래스로 정의할 수 있음
  • ※ 인스턴스 : 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체. 즉, 객체를 스프트웨어에 실체화하면 그것을 '인스턴스'라고 부른다.

※ 구체적인 팩토리에서 구체적인 인스턴스를 만드는 것 까지는 팩토리 메서드 패턴과 비슷하지만 팩토리를 사용하는 클라이언트에 초점이 맞춰져 있음

  • 기존 코드는 클라이언트가 실행을 할때 구체적인 클래스 타입에 의존하고 있지만, 그것을 개선하기 위해서 추상 팩토리 패턴을 적용함

ShipPartsFactory

  • 이것이 추상 팩토리(AbstractFactory) 부분.
  • Anchor와 Wheel도 Interface로 만들어줘야함.

WhiteShipPartsFactory

  • 추상 팩토리의 구현체.
  • ShipPartsFactory를 implements해줘야 함.
  • 이때 new WhiteAnchor();를 리턴해준다.
  • ConcreteProductA
  • Archor가 ProductA Interface
  • ConcreteProductB
  • Wheel이 ProductB Interface

Client

  • shipPartsFactory를 통해서 createAnchor를 불러오면 됨

팩토리 메소드와 추상 팩토리 패턴의 차이점

  • 모양과 효과는 비슷하지만 둘 다 구체적인 객체 생성 과정을 추상화한 인터페이스를 제공함
  • 팩토리 메소드 패턴은 "팩토리를 구현하는 방법"에 초점을 두지만 추상 팩토리 패턴은 "팩토리를 사용하는 방법"에 초점을 둔다.
  • 팩토리 메소드 패턴은 구체적인 객체 생성 과정을 하위 또는 구체적인 클래스로 옮기는 것이 목적이지만 추상 팩토리는 관련 있는 여러 객체를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 것이 목적
profile
모든 업무 지식 작성하자!

0개의 댓글