1. 기본 : 생성자에 매개변수가 많다면 빌더 패턴 사용을 고려해라
- 생성자가 많을 경우 또는 오브젝트 생성 후 변경 불가능한 불변 오브젝트가 필요한 경우, 불변 오브젝트를 생성하여 오브젝트의 일관성, 변경 불가능을 실현하여 코드의 가독성과 불변성, 일관성을 유지하도록 한다.
객체 생성의 대표적 방법으론
1) 점층적 생성자 패턴 : 일관성, 불변성은 유지되지만, 가독성 좋지 않다. 어디에 뭐가 저장되는지 호출 코드만으로는 각 인자의 의미를 알기 어렵다.
2) 자바 빈 패턴 - Setter 메서드 쓰는 방식으로 어떤 해당 파라미터가 어떤 변수인지 메서드를 통해 확인 가능(일관성, 변경 불가능성 원칙 깨짐)-> 스레드 안정성을 위해 추가 작업 필요
3) 빌더 패턴이 있다. - 어떤 필드에 어떤 인자 넣어줬는지 명확히 알 수 있고, 일관성 유지 가능(1과 2의 장점 섞임)
※ 자세한 내용은 아래 블로그를 참고하도록 하자. 너무 잘 정리되어 있어 추가적으로 정리할 필요를 못 느꼈다.
(GoF의 디자인 패턴의 빌더 패턴과 다른 것이다)
※ https://velog.io/@hero6027/Builder-Pattern%EB%B9%8C%EB%8D%94-%ED%8C%A8%ED%84%B4-by-Effective-Java
※ https://johngrib.github.io/wiki/builder-pattern/
※ 백기선님 유튜브 강의 및 깃헙 Read.me
https://www.youtube.com/watch?v=OwkXMxCqWHM&list=PLfI752FpVCS8e5ACdi5dpwLdlVkn0QgJJ&index=2
https://github.com/keesun/study/blob/master/effective-java/item2.md