본문 바로가기
Computer Science/디자인 패턴

[디자인 패턴] Factory

by nahkim 2023. 4. 7.

디자인 패턴

의미

각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현방안을 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제

즉, 로직에 따라 반복되는 패턴

 

생성 패턴(Creational Pattern)

  • 객체 생성과 관련된 패턴
  • 객체의 생성과 참조 과정을 캡슐화하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해줌

Factory

object를 찍어 낼수있는 공장

공장 하나로 여러개의 오브젝트를 만든다.

 

장점

복잡한 오브젝트의 생성을 클라이언트가 다룰 필요가 없다.

클라이언트는 요청을 하여 팩토리에 넘겨주기만 하면 됨

추가 기능을 구현하기 어렵다. -> Factory Method을 사용하면 된다.

 

최상위 공장은 인터페이스만 정의하고 실제 생성은 바로 아래 공장이 한다.

-> 최상위 공장

ㅁ ㅁ ㅁ -> 서브

 

팩토리 메소드(Factory Method)

  • 객체를 생성할 때 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
  • 상위 클래스에선 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당
  • 새로운 구현 클래스가 추가되어도 기존 Factory 코드를 수정하지 않아도 됨

추상 팩토리(Abstract Factory)

  • 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
  • 연관된 서브 클래스를 묶어 한번에 교체하는 것이 가능