본문 바로가기
개발 도서

[이펙티브 자바] 아이템 2 - 생성자에 매개변수가 많다면 빌더를 고려하라

by 성건희 2023. 3. 14.
반응형

개발할 때 생성자로 객체를 만들면 인자가 많아질 수록 휴먼 에러가 발생할 가능성이 많아졌다. (같은 타입이라 순서를 햇갈려 값을 잘못 넣은 경우)
또한 어떤 속성의 값인지 가독성이 너무 떨어지는 문제가 있어서 매개변수가 많아지면 거의 무조건 빌더 패턴을 사용했다.

책에서는 점층적 생성자 패턴 -> 자바빈즈 패턴 을 거쳐 두 패턴의 장점을 모아 빌더 패턴 이 나왔다고 설명한다.
확실히 빌더 패턴을 사용하면 쓰기도 쉽고 읽기도 쉽다는 장점이 있다.

그런데 빌더 패턴을 사용할 때마다 매번 구현해야 된다면.. 이것 또한 엄청 불편할 것 같다는 생각이 들었다..
다행히도 Lombok 어노테이션을 사용하면 @Builder를 통해 쉽게 빌더 패턴을 사용할 수 있다.

빌더 패턴의 장점

1. 쓰기 쉽고 읽기 쉽다.

2. 계층적으로 설계된 클래스와 함께 쓰기 좋다.

요런식으로 사용해보지는 않아서 사실 이 부분은 잘 와닿지 않았다.

3. 가변인수 매개변수를 여러 개 사용할 수 있다.

4. 빌더 패턴은 상당히 유연하다.

빌더 패턴의 단점

1. 객체를 만드려면 우선 빌더부터 만들어야 한다.

2. 점층적 생성자 패턴보다 코드가 장황하다.

사실 위 단점들은 롬복 @Bulider 어노테이션을 사용하면 단점은 아닌 것 같다.

반응형

댓글