CS/DesignPattern

Builder Pattern(effective java)

prden 2021. 7. 8. 14:49

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

 

Builder Pattern(빌더 패턴 by Effective Java)

최근에 포스팅했던 GoF의 빌더 패턴과는 관점이 다른 접근방법이다. GoF의 빌더패턴은 오브젝트의 생성과 조립 과정을 분리하는 과정에 중점을 두었다면,이펙티브 자바의 빌더 패턴은 생성자(Cons

velog.io

https://johngrib.github.io/wiki/builder-pattern/

 

빌더 패턴(Builder Pattern)

객체의 생성 방법과 표현 방법을 분리한다

johngrib.github.io

 

※ 백기선님 유튜브 강의 및 깃헙 Read.me

https://www.youtube.com/watch?v=OwkXMxCqWHM&list=PLfI752FpVCS8e5ACdi5dpwLdlVkn0QgJJ&index=2 

https://github.com/keesun/study/blob/master/effective-java/item2.md

 

GitHub - keesun/study: Learn, Share and Grow

Learn, Share and Grow. Contribute to keesun/study development by creating an account on GitHub.

github.com