정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메소드
직접적으로 생성자를 통해 객체를 생성하는것이 아니라 메서드를 통해서 객체를 생성하는 것이다.
생성자와의 차이점
1. 이름을 가질 수 있다.
- 생성자 : 내부 구조를 잘 알고 있어야 목적에 맞게 객체 생성이 가능하다.
- 정적 팩토리 메서드 : 메서드 이름에 객체의 생성 목적을 담을 수 있다.
2. 호출할 때마다 새로운 객체를 생성할 필요가 없다
Enum과 같이 자주 사용되는 요쇼의 개수가 정해져 있다면 해당 개수만큼 미리 생성해두고 조회(캐싱)할 수 있는 구조로 만들 수 있다.
3. 하위 자료형 객체를 반환할 수 있다.
4. 객체 생성을 캡슐화할 수 있다.
정적 팩토리 메서드가 필요한 경우
1. 객체 간 형 변환이 필요한 경우
2. 여러번의 객체 생성이 필요한 경우
정적 팩토리 메서드 네이밍 컨벤션
- from : 하나의 매개변수르 받아서 객체 생성
- of : 여러개의 매개변수를 받아서 객체 생성
- getInstance | instance : 인스턴스를 생성. 이전에 반환했던 것과 같을 수 있다.
- newInstance | create : 새로운 인스턴스를 생성
- get[OtherType] : 다른 타입의 인스턴스를 생성한다. 이전에 반환했던 것과 같을 수 있다.
- new[OtherType] : 다른 타입의 새로운 인스턴스를 생성한다.
참고하여 공부한 포스트
https://tecoble.techcourse.co.kr/post/2020-05-26-static-factory-method/
정적 팩토리 메서드(Static Factory Method)는 왜 사용할까?
…
tecoble.techcourse.co.kr
'JAVA' 카테고리의 다른 글
람다식 (0) | 2023.07.26 |
---|---|
[JAVA/개념] 10장 예외처리 (0) | 2023.07.08 |
[JAVA/개념] 9장 익명객체 (0) | 2023.07.08 |
[JAVA/개념] 11장 기본 API 클래스 (1) | 2023.07.08 |
[JAVA/개념] 인터페이스 (0) | 2023.07.02 |