본문 바로가기
🖥️ Computer Science/Design Pattern

[디자인 패턴] 팩토리 패턴 (Factory Pattern)

by hyebin (Helia) 2023. 3. 17.

팩토리 메서드 패턴 (Factory Method Pattern)

  • 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브 클래스에서 결정하게 만드는 패턴
  • 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것
  • 부모 추상 클래스는 인터페이스에만 의존하고 실제로 어떤 구현 클래스를 호출할지는 서브 클래스에서 구현
  • 새로운 구현 클래스가 추가되어도 기존 Factory 코드의 수정 없이 새로운 Factory를 추가 가능
  • 객체의 생성을 담당하는 클래스를 한 곳에서 관리하여 결합도를 줄이기 위하여 팩토리 패턴이 등장
    • 결합도: 한 클래스에 변경점이 얼마나 다른 클래스에 영향을 주는가를 의미

팩토리 메서드 패턴의 장점

  • 객체 간의 결합도를 낮출 수 있음
  • 단일 책임 원칙을 따름
  • 프로그램의 코드에서 생성자 코드를 분리함으로써 코드를 더욱 간결하게 만들 수 있음
  • 개방 폐쇄 원칙을 따름
  • 기존 client의 코드를 파괴하지 않고 새로운 타입을 추가할 수 있음

팩토리 메서드 패턴의 단점

  • 패턴을 구현할 많은 서브 클래스를 도입합으로써 코드가 복잡 해 질 수 있음

추상 팩토리 패턴(Abstract Factory Pattern)

  • 연관된 객체들의 생성을 하나의 팩토리에서 담당
  • 팩토리를 만드는 상위 팩토리(super-factory) 클래스가 존재

추상 팩토리 패턴 장점

  • Factory로부터 만들어진 각 객체들이 서로 compatible 함을 보장할 수 있음
  • 객체 간의 결합도를 낮출 수 있음
  • 단일 책임 원칙을 따름
  • 프로그램의 코드에서 생성자 코드를 분리함으로써 코드를 더욱 간결하게 만들 수 있음
  • 개방 폐쇄 원칙을 따름
  • 기존 client의 코드를 파괴하지 않고 새로운 타입을 추가할 수 있음

추상 팩토리 패턴 단점

  • 패턴을 구현할 많은 서브 클래스를 도입합으로써 코드가 복잡 해 질 수 있음
반응형

댓글