티스토리 뷰

빌더 패턴 ( Builder Pattern )


🔥 동일한 프로세스를 통해 다양한 구성의 인스턴스를 만드는 방법.

 

필요 이유

필드 값의 null 여부에 의해 다양한 구성의 인스턴스가 존재할 수 있다. 이를 자연스럽게 생성하기 위한 방법으로 점층적 생성자 패턴이 있는데, 이를 사용해 다양한 형태의 객체를 대응하면 너무 많은 생성자가 필요해 코드를 작성하거나 읽기가 힘들어진다. 대안으로는 자바빈즈 패턴으로 생성 후 Setter를 통해 매개변수 설정 방법이 있을 수 있는데 이러한 방법은 세터 메서드가 전부 처리되기 전까지는 객체가 미완의 상태를 가지게 되고 불변 객체를 만들 수 없다는 문제가 있다. 때문에 대안으로 빌더 패턴이 필요하다.

 

 

객체 모델

 

 

구현

 

Product

 

 

Builder 와 ConcreteBuilder

 

 

 

 

 

 

Client

 

 

Lombok 처럼 만들어 보기

객체 모델

 

Product

 

 

Client

 

빌더 패턴의 장•단점

장점

  • 하나의 방법으로 다양한 구성의 인스턴스를 생성할 수 있다.
  • 만들기 복잡한 객체를 계층적으로 생성할 수 있다.
  • 복잡한 객체 만드는 과정을 내부에 숨길 수 있다.

단점

  • 빌더가 필요한 객체의 빌더를 만들어야 한다
  • 구조가 복잡해진다.

 

 

예제 코드

참조

 

이펙티브 자바 3/E - 교보문고

프로그래밍인사이트 | 자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용

www.kyobobook.co.kr

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com

 

댓글