Thursday, February 9, 2017

Effective Java 규칙2 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라

다시 말하지만 내용을 요약한 부분이 아니라 이 책을 읽고 어떻게 이해를 했고 장단점이 머가 있을까라고 생각하는 나의 의견을 적는 곳이라서 참고 부탁합니다.


일반적으로 자바 빈스 패턴으로 getter와 setter를 사용하는게 일반적이지만
생성자를 만들때 인자의 개수가 많아지면 곤란한다. 그리고 그 인자 값들이 필수 값이 아니라 선택사항일 경우 인자의 개수만큼 생성자수의 개수만큼 만들어지니 복잡해진다.

만약에 개수가 A, B, C, D 4개라고 한다면 (모두 String이라고 가정한다.)

Class(A) 가 필요하겠고
Class(B) 가 필요하겠고
...
Class(A, B) 가 필요하고..
음..
불필요하게 많은 생성자가 필요하다.

Build Pattern 의 장점

  1. 한번 build를 하면 변수값들이 immutable이 된다.
  2. 내부적으로 일련번호를 만들어서 관리할수 있다.
  3. build할때마다 새로운 객체를 생성할 수 있다.
  4. 변수 입력후 반환타입이 build객체라서 객체가 유연하다.


Build Pattern 의 단점

  1. 코딩이 길어진다
  2. 귀찮다.
  3. 장점이지만 한번 빌드한 변수는 수정이 불가능하다

이 정도로 생각이 되네요.

No comments:

Post a Comment