아래 장점은 위 링크를 통해 자세히 다시 확인해보자
생성 목적에 대한 이름 표현이 가능
<aside> 💡 정적 팩토리 메서드를 구성하고자 한다면, 반드시 생성자에 private 접근 제어자를 두어 외부에서 new 키워드를 이용하여 객체를 생성하는 것을 잊지 말자!
</aside>
인스턴스에 대해 통제 및 관리가 가능하다
하위 자료형 객체를 반환할 수 있음
인자에 따라 다른 객체를 반환하도록 분기할 수 있음
네이밍 컨벤션 우수사례 : Optional.of()
하위 자식 객체 반환 및 캡슐화 우수사례 : List.of()
인스턴스를 캐싱하여 관리가 가능 우수사례 : Integer.valueOf()
Lombok의 정적 팩토리 메서드 생성
@RequiredArgsConstructor(staticName = "of")
class Product {
private Long id;
private String name;
}
public class Main {
public static void main(String[]args) {
Product p = Product.of();
}
}