북스터디/이펙티브 자바

    Item 02. 생성자에 매개변수가 많다면 빌더를 고려하라 - 이펙티브 자바

    정적 팩터리와 생성자 방식의 문제점 정적 팩터리와 생성자 방식으로 인스턴스를 생성하는 것은 공통적인 제약이 있다. → 선택적 매개변수가 많을 경우 적절히 대응하기 어렵다는 것. public class NutiritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public NutiritionFacts(int servingSize, int servings) { // servingSize 와 servings 값을 받는 생성자 public N..

    Item 01. 생성자 대신 정적 팩터리 메서드를 고려하라 - 이펙티브 자바

    클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. 하지만 클래스는 생성자와 별도로 정적 팩터리 메서드를 제공할 수 있다. 정적 팩터리 메서드 (static factory method) public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } 위 코드는 Boolean 객체를 얻는 정적 팩터리 메서드의 예시이다. 디자인 패턴에서의 팩터리 메서드와는 다른 개념이니 주의해야 한다. 정적 팩터리 메서드를 사용하면 생성자를 통하지 않고도 객체를 얻을 수 있다는 점 때문에 장단점만 잘 파악한다면 유용하게 사용할 수 있을 것이다. 정적 팩터리 메서드의 장점 이름을 가질 수 있다. 생성자에 넘기는 ..