빌더 패턴

주짱·2022년 6월 8일
0

디자인 패턴

목록 보기
4/4
post-thumbnail
post-custom-banner

🔶개념

Constructor Overloading

👉 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴 이다. 직접 구현할 일은 드물지도 모르지만, 프레임워크에서 제공해주면 생각보다 흔하게 쓴다.

파이썬에서는 keyword 파라미터를 제공해주기 때문에, 굳이 필요는 없다.


🔶구성요소

구성요소역할
Builder객체를 작성하기 위한 인터페이스를 정의함.
객체의 각 부분(part)를 만들기 위한 추상메서드(buildPart())을 선언함.
마지막 결과를 얻기 위한 메서드(getResult())를 정의함.
ConcreteBuilderBuilder 인터페이스를 구현함.
DirectorBuilder 인터페이스를 사용해서 객체를 생성.
각 부분을 조립하는 메서드(construct())를 Client에 제공함.
ProductBuilder을 통해 생성되는 복합 객체

🔶사용배경

빌더 패턴은 다음과 같은 상황일 때 사용하면 효과적이다.

  1. 복합 객체를 생성하는 알고리즘이 복합 객체를 구성하는 요소 객체들이 무엇이든 이들 내부에서의 조립 방법과 독립적일 때.

  2. 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해 줘야 할 때.


🔶장점

  • 필요한 데이터만 설정할 수 있다.

  • 유연성을 확보할 수 있다.

  • 가독성을 높일 수 있다.

  • 변경 가능성을 최소화할 수 있다.


🔶단점

  • 프로퍼티가 추가되면 그만큼 경우의 수에 맞게 생성자를 만들어야 한다.
  • 인자에 대한 설명이 없기 때문에 인자가 많은 경우 몇번째 인자가 어떤 의미인지 헷깔린다.
profile
개발의, 개발에 의한, 개발을 위한 ✍
post-custom-banner

0개의 댓글