본문 바로가기

Language/Java

[Effective Java] item 2

Item 2 : consider a builder when faced with many constructor parameters 





- static factories, constructor는 같은 한계를 가진다. 

=> large number of optional parameters에 대응하기 어렵다. 

=> 대안 1) 

-  parameter마다 생성자를 달리 할 수 있지만, 늘어나는 parameter에 대응하기 어렵고, 가독성도 매우 떨어진다.


=> 대안 2) 

- parameterless 생성자를 호출 후, setter를 통해서 parameter setting.

- 대응에는 용이하지만, 생성 방식이 일관되지 못해서 (여기저기서 각자 생성하므로) state가 불안정함.

- immutable class를 불가능하게 만든다. 


=> 대안 3) p.14 


- Builder pattern.

- 필요한 객체를 만드는 'Builder' class를 만든다.

- Builder class를 통해서 필요한 paramter들을 입력 후 해당 빌더 클래스를 통해서 객체를 생성한다. 

=> consistent class 가능! 


- 하나의 Builder를 통해서 다양한 state의 instance를 만들어낼 수 있다. 



/*

추후 보완 

*/




- 요약 

- parameter의 수가 많고, 특히 optional인 parameter가 많을 수록, Builder pattern을 고려해라 ! 

- client code의 가독성이 좋아지고, 코딩하기 쉬워진다. 

'Language > Java' 카테고리의 다른 글

[Effective Java] Item4.  (0) 2017.01.14
[Effective Java] Item 3  (0) 2017.01.14
[Effective Java] item 1  (0) 2016.12.19
attach source javadoc in eclipse  (0) 2015.02.11