donaricano-btn

생성자의 builder패턴 적용(builder pattern)


1. 생성자의 문제

1) 선택적 인자가 많은 상황에 잘 적응하지 못한다


2. 점층적 생성자 패턴(telescroping constructor pattern)

- 필요한 생성자를 하나씩 추가하는 방식

1) 문제점

- 설정할 필요없는 값(위의 0 같은)을 설정해야한다. 

- 점층적 생성자 패턴은 잘 동작하지만 클라이언트 코드 작성이 어렵고 가독성이 떨어진다.


3. 자바빈 패턴(JavaBeans pattern)

- 인자 없는 생성자를 호출하여 객체를 만든다음 설정 메소드로 필드값을 추가하는 방식

- 사용

1) 문제점

- 1회의 함수 호출로 객체 생성을 끝낼수 없다.(객체의 일관성이 일시적으로 깨진다)

- 변경 불가능 클래스(immutable)를 만들 수 없다.


4. 빌더패턴(builder pattern)

- 점층적 생성자 패턴 + 자바빈 패턴

- 필요한 객체를 직접 생성하는 대신, 클라이언트는 먼저 필수 인자들을 생성자에 전부 전달하여 빌더 객체를 만든다.

- 빌더 객체에 정의된 설정 메소드를 호출하어 선택적 인자를 추가한다.

- 사용

1) 장점

- 불변식(invariant) 적용이 가능하다. build() 해당 불변식이 위반되었는지 검사가 가능하다.

- 여러개의 varargs 인자를 받을 수 있다.

- 유연하다. 하나의 빌더 객체로 여러 객체를 만들 수 있다.

2) 단점

- 객체를 생성하려면 먼저 빌더 객체를 생성해야한다.



블로그 이미지

리딩리드

,