빌더 패턴2 [Effective Java] 아이템2 생성자에 매개변수가 많다면 빌더를 고려하라 1. 정적 팩터리와 생성자의 문제점 정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵습니다. 대부분 점층적 생성자 패턴을 즐겨 사용하는데 이런 생성자는 사용자가 설정하고 싶지 않은 매개변수까지 포함하기 때문에 어쩔 수 없이 그런 매개변수도 값을 지정해줘야한다. 매개변수가 늘어날수록 걷잡을 수 없다. 2. 자바빈즈패턴 두번째 대안인 자바빈즈패턴을 사용하면 매개변수가 없는 생성자로 객체를 만든 후 세터 메서드들을 호출하여 원하는 매개변수의 값을 설정하는 방식이 있다. 자바빈즈패턴은 객체 하나를 만들려면 메서들르 여러번 호출해야하고 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다. 일관서이 깨진 객체가 만들어지면 버그를 심은 코드와 그 버그 때문에 런타임에 문제를 겪는.. 2021. 1. 12. 빌더 패턴(Builder Pattern)이란? 1. Builder Pattern 인스턴스를 생성할 때 생성자만을 통해서 생성하게 되면, 생성자를 일일이 정의를 해줘야 한다던가 생성자에 들어갈 변수의 순서를 맞춰야하는 등의 불편함이 있습니다. 빌더 패턴은 이 문제를 해결하기 위해 고안된 패턴 중 하나 입니다. 인스턴스를 생성할 때 인자를 선택적으로 가독성 좋게 넘길 수 있다. 인자의 순서에 상관이 없어진다. 불필요한 생성자를 만들지 않는다. 2. 빌더 패턴을 사용 하는 경우 빌더 패턴은 많은 Optional한 멤버 변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 하는 문제들을 해결합니다. 예를 들어, 팩토리 패턴이나 추상 팩토리 패턴에서는 생성해야하는 클래스에 대한 속성 값이 많을 때 아래와 같은 이슈들이 있습니다. 클라이언트 프로그램으.. 2020. 7. 13. 이전 1 다음