Effective Java2 [Effective Java] 아이템2 생성자에 매개변수가 많다면 빌더를 고려하라 1. 정적 팩터리와 생성자의 문제점 정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵습니다. 대부분 점층적 생성자 패턴을 즐겨 사용하는데 이런 생성자는 사용자가 설정하고 싶지 않은 매개변수까지 포함하기 때문에 어쩔 수 없이 그런 매개변수도 값을 지정해줘야한다. 매개변수가 늘어날수록 걷잡을 수 없다. 2. 자바빈즈패턴 두번째 대안인 자바빈즈패턴을 사용하면 매개변수가 없는 생성자로 객체를 만든 후 세터 메서드들을 호출하여 원하는 매개변수의 값을 설정하는 방식이 있다. 자바빈즈패턴은 객체 하나를 만들려면 메서들르 여러번 호출해야하고 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다. 일관서이 깨진 객체가 만들어지면 버그를 심은 코드와 그 버그 때문에 런타임에 문제를 겪는.. 2021. 1. 12. [Effective Java] 아이템1 생성자 대신 정적 팩터리 메서드를 고려하라 1. 정적 팩터리 메서드 클래스는 생성자와 별도록 정적 팩터리 메소드를 제공할 수 있다. 다음 코드는 boolean 기본 타입의 박싱 클래스인 Boolean에서 발췌한 간단한 예시다. 이 메서드는 기본 타입인 boolean 값을 받아 Boolean 객체 참조로 변환한다. public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } 2. 정적 팩터리 메서드 장점 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못하지만, 정적 팩터리 메서드는 반환될 객체의 특성을 쉽게 묘사할 수 있다. 장점 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다... 2021. 1. 11. 이전 1 다음