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 |