생성자의 매개변수가 많을 때 빌더 패턴을 사용하라는 것이 이번 장의 핵심이다.

 

 

단순히 매개변수가 많은 것이 문제가 되는 것이 아닌,

생성자를 만들 때 필수로 들어가는 요소와 선택적인 요소가 여러개가 있다면

각각 상황에 맞는 생성자나 정적 팩토리 메소드를 만드는 것은 비효율적이다.

 

 

setter 형식의 자바빈 패턴은 생성중 일관성이 유지되지 않는 단점이 있기 때문에

(thread safe 하지 않음, 중간에 오류가 생길시에 일관성 망가짐)

이에 대한 대안으로 빌더 패턴을 소개하고 있다.

 

 

빌더는 객체를 바로 생성하지 않고 임의의 공간에 삽입할 요소들을 채워놓고

build 메소드를 호출해 한번에 필요한 객체를 생성한다.

 

 

쉽게 이야기 하면, 공장의 라인에서 지정된 위치에서 한명 한명 담당하는 부품을 조립하는 방식이 아닌,

완제품을 한번에 때려박는다는 소리다.

 

 

그러나 빌더 패턴의 경우 매개변수가 많아질수록 생성해야 할 코드의 길이가 길어지기 때문에

Lombok의 @Builder를 사용하기도 한다.

 

 

현재 구상하고 있는 프로젝트에서 남/여 고객의 아우터, 상의, 하의, 넥타이, 조끼 등의 요소를 대여할 때

빌려간 옷의 개수를 저장해야하는 구조를 짜야하는데 빌더를 이용하면 될 것 같다.

이부분은 추후에 구현하여 포스팅 하겠다.

+ Recent posts