Yomni's TIL Help

아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라

// Boolean 의 valueOf public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean:FALSE; }

장점

장점 1. 이름을 가질 수 있다

  • 생성자는 매개변수와 반환될 객체의 특성을 설명하지 못한다.

호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다

  • 불필요한 객체 생성을 피할 수 있다.

반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다

  • 반환할 객체의 클래스를 자유롭게 선택할 수 있게 하는 엄청난 유연성 을 제공한다

입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다

정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다

단점

상속을 하려면 public 이나 protected 생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클래스를 만들 수 없다

정적 팩터리 메서드는 프로그래머가 찾기 어렵다

Last modified: 15 October 2024