[Design Pattern] 빌더 패턴 (Builder)

빌더 패턴 (Builder)?

  • 생성 패턴
  • 객체를 생성하는 과정 / 표현하는 방법을 분리
  • 생성자에 매개변수가 많다면 빌더 패턴을 고려하자.
  • 하나의 Builder로 다양한 객체를 만드는 것이 가능.

UML 

<위키백과 - 빌더 패턴 구조>


Product 클래스


Builder

다양한 파츠를 생성하기 위해 인터페이스를 제공.


ConcreteBuilder

제품의 각 구성품을 만드는 것에 관여한다.

 


Director

생성 프로세스에 관여하며, 정형화된 조립 과정으로 조립한다.



참고 사이트

 

 

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

 

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

  • 생성 패턴
  • 다양한 구성 요소별로 '객체의 집합'을 생성해야 할 때 사용

 UML

<위키백과 - 추상 팩토리 패턴 UML 클래스 및 시퀀스 다이어그램>







위키백과 - 추상 팩토리 패턴

[Design Pattern] 팩토리 메소드 패턴 (Factory Method)

팩토리 메소드 패턴 (Factory Method)?

  • 생성 패턴
  • SuperClass에서 인터페이스를 제공하고 SubClass에서 결정.

 

많은 설계는 FactoryMethod를 사용하는 것으로 시작하므로 알아두어야 좋다!

예를들어 아메리카노, 라떼 커피를 제조한다고 하자.


  • 커피 SuperClass
  • 아메리카노, 라떼 SubClass

커피 클래스

GetName() 가상함수를 추가하여 Coffee 추상클래스를 만들었다.

SubClass인 아메리카노, 라떼에서 GetName()을 구현.


  • 커피 생성 클래스 SuperClass
  • 아메리카노, 라떼 생성 클래스 SubClass

이번에도 FactoryMethod()를 가상함수로 만들었고, SubClass들에서 구현을 한다. 

생성클래스답게 new로 각 클래스의 객체를 생성한다.



장단점

장점

  • 객체를 생성하는 코드와 클라이언트 코드와 분리 가능하다.
  • 생성코드가 한 곳에 있기 때문에 유지보수가 쉽다. 

단점

  • 새로운 하위 클래스를 많이 만들어야 하기 때문에 코드가 더 복잡해질 수도 있다.