빌더(Builder) 패턴

오형민·2021년 9월 13일
0

디자인패턴

목록 보기
4/6

요약

  • 복합 객체의 생성 과정과 표현 방법을 분리함으로써 동일한 생성 공정이 서로 다른 표현을 만들 수 있게 한다.

구조

refactoring.guru에서 참조

사용이유

특정 객체를 생성할 때, 서로 다른 구성의 생성자를 사용해야 하는 경우가 있음. 실제 생활에서 예를 들면, 놀이공원을 갈 때 모든 사람이 동일한 구성으로 즐기지 않음. 자유이용권을 사는 사람도 있고, After 4 이용권을 사는 사람도 있으며, 안에서 밥만 먹고 나오는 사람도 있음.
이런 경우 모든 경우의 수에 대해 생성자를 만들어야 할까? Java나 C++의 경우 생성자 오버로딩을 통해 이런 경우를 해결해야 하는데 가독성 등에 문제가 생길 여지가 많음. 따라서 이를 위해 빌더 패턴을 사용함.

장단점

장점

  • 복합 객체가 생성되는 과정을 캡슐화합니다.
    여러 단계와 다양한 절타를 통해서 객체를 만들 수 있습니다.
    제품의 내부 구조를 클라이언트로부터 보호할 수 있습니다.
    클라이언트에서는 추상 인터페이스만 볼 수 있기 때문에 제품을 구현한 코드를 쉽게 바꿀 수 있습니다.

단점

팩토리를 사용하는 경우에 비해 객체를 만들기 위해서 클라이언트에 대해 더 많이 알아야 합니다.

활용법

  • 복팝 객체 구조를 구축하기 위한 용도로 많이 쓰입니다.

0개의 댓글