정적 팩토리 메소드

지노·2021년 6월 5일
0
post-custom-banner

정적 팩토리 메소드란?

  • 객체 생성을 캡슐화하는 기법
  • 객체를 생성하는 메소드를 만들고, static으로 선언하는 기법
BigInteger answer = BigInteger.valueOf(42L); // BigInteger 42를 리턴한다

장점

  • 이름이 있으므로 어떤 인스턴스를 반환하는 지 명시적으로 알 수 있다.
  • 호출할 때마다 새로운 객체를 생성할 필요가 없다.
  • 하위 자료형를 반환할 수 있다.
  • 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다.
  • 정적 팩토리 메소드를 작성하는 시점에 반환할 객체의 클래스가 존재하지 않아도 된다.

단점

  • 정적 팩토리 메서드는 다른 정적 메서드와 잘 구분되지 않는다.

네이밍 예시

  • from: 하나의 매개변수를 받아서 인스턴스를 생성

  • of: 여러개의 매개변수를 받아서 인스턴스를 생성

  • instance or getInstance: 인스턴스를 반환하지만 동일한 인스턴스임을 보장하지 않는다.

  • create or newInstance: 매번 새로운 인스턴스를 반환한다.

  • getXxxx: getInstance와 같으나 호출하는 클래스와 다른 타입의 인스턴스를 반환할때 사용

    • ex) Date.getInstance() 는 Date 타입의 인스턴스를 반환하지만 Date와 상관없는 Period 타입을 반환한다면 Date.getPeriod() 가 된다.
  • newXxxx: getXxxx와 같으나 매번 새로운 인스턴스를 반환한다.

참조

profile
Spring Framework를 이용한 웹 개발과 AWS 서비스, Container를 사용한 CI/CD 인프라에 관심이 있습니다.
post-custom-banner

0개의 댓글