이름을 가질 수 있다.
→ 이름을 통한 반환될 객체의 특성 묘사 가능
호출될 때마다 인스턴스를 새로 생성하지 않아도 된다.
→ 불필요한 객체 생성 피할 수 있음 ( 인스턴스 미리 생성 or 인스턴스 캐싱 후 재활용)
⇒ 인스턴스의 생명주기 철저히 통제 가능
( 통제의 이유 : 싱글턴 혹은 인스터스화 불가로 연결 가능, 동치의 인스턴스가 1개임을 보장)
반환 타입의 하위 타입 객체를 반환할 수 있는 능력
입력 매개변수에 따라 매번 다른 클래스의 객체 반환 가능
정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 됨
☀️ 핵심정리
정적 팩터리 메서드와 public 생성자는 각자의 쓰임새가 있으니 상대적인 장단점을 이해하고 사용하는 것이 좋다.
그렇다고 하더라도 정적 팩터리를 사용하는 게 유리한 경우가 더 많으므로 무작정 public 생성자를 제공하던 습관이 있다면 고치자.
무작정 public 생성자 만드는 거 언제 지켜보셨어요