플젝을 하는데, builder를 이용하는 부분이 있었다.
builder가 뭔데요…? ㅠㅠ…
아직 배울 것이 한참 많은 주니어는 처음 보는 것에 당황당황.
자바 빌터 패턴은 무엇인지 알아보잣!




Member member = Member.builder()
                .name("liz")
                .age(30)
                .phone("01012345678")
                .build();

빌더 패턴은 위와 같이 사용한다.
매서드 체이닝 기법을 적용하여 매개변수를 다 넣은 후 build() 메서드로 객체를 생성한다.
불편하지 않나…? 라고 생각했는데,
빌더 패턴을 사용하면 어느 필드에 어떤 값을 채워야 하는지 명확하게 알 수 있고,
데이터 일관성, 객체 불변성을 만족 시키고, 코드의 가독성도 올라간다고 한다.
실제로 사용해보니, 해당 객체에 어떤 값을 넣어야 하는지 한 눈에 파악할 수가 있어서 좋았다.
확실히 생성자 파라미터가 많을 때, 뭐가 뭔지 헷갈려서 열심히 파일을 뒤적거리곤 했었는데
그럴 일이 줄어드니 편했다.
코드를 짜다보면… 객체마다 필요한 값들이 다 다르단 말이지… ?



롬복을 이용한다면, @builder 어노테이션만 달아주면 된다고 한다.
실제로 나도 어노테이션을 달고 사용했다. ㅎㅎ



프로그래밍을 할 때 흔히 사용하는 게 바로 setter 메서드이다. 근데 사실 이게 좋지 않은 방법인 것을 다들 잘 알고 있을 것이다. 물론 편하긴 하다…
그렇지만, sertter를 사용하면 값을 변경하는 의도 파악이 어렵고, 객체의 일관성 유지가 힘들다. 빌더 패턴을 사용하게 되면 setter를 명시적으로 사용할 일이 없기 때문에 좋다.



그러나 빌더 패턴에도 단점은 존재한다.
너무 길면 오히려 코드를 이해하기 어렵고, 필드가 중복이 된다.
또한 메모리 또한 빌드 패턴을 사용하지 않을 때보다 많이 잡아 먹는다.
적재적소에 사용할 수 있게끔 분석이 필요할 듯 하다!

태그: ,

카테고리:

업데이트: