[BooksReview]effective java - 생성자 vs 정적팩토리메소드(Constructor vs static factory method)
BooksReview/effective Java 2017. 9. 10. 17:42생성자 vs 정적팩토리메소드(Constructor vs static factory method)
- 기존에 객체를 만드는 방법은 public 생성자를 이용하는 방법이다. 그러나 public 으로 선언된 정적 팩토리 매소드를 이용한 객체 생성방법으로 여러 장점을 얻을 수 있다.
1. 정적 팩토리 메소드 예제
2. 정적 팩토리 메소드의 장점
1) 생성자와 달리 이름이 있다.
- 생정자와 달리 사용하기 쉽고 가독성을 높일 수 있다.
- 여러 생성자를 만들었을 때 나타나는 문제를 해결 할 수 있다.
2) 호출 할 때 마다 새로운 객체를 생성할 필요가 없다
- 불필요하게 같은 객체가 생성되는 것을 막을 수 있다.
- 개체 통제 클래스(instance-controlled class) 화 할 수 있다.
* 개체 통제 클래스
- 어떤 시점에 어떤 객체가 얼마나 존재할 지 통제 할 수 있다
3) 생성자와 달리 반환 값 자료형의 하위 자료형 객체를 반환 할 수 있다.
- 반환 되는 객체 클래스를 유연하게 결정
4) 형인자 자료형(parameterized type) 객체를 만들 때 편하다
- 기존에는 형인자가 늘어 짐에 따라 길고 복잡한 코드가 만들어진다.
- 정적팩토리 메소드를 사용하면 컴파일러가 형인자를 스스로 알아낸다(자료형 유추( type inference))
3. 정적 팩토리 메소드의 단점
1) 정적 팩토리 메소드만 있는 클래스는 하위 클래스를 만들 수 없다
2) 다른 정적 메소드와 확연히 구분되지 않는다
'BooksReview > effective Java' 카테고리의 다른 글
[BooksReview] effectiveJava - 생성자의 builder패턴 적용(builder pattern) (0) | 2017.10.08 |
---|---|
[BooksReview] effectiveJava - for문보다는 for-each문 사용 (0) | 2017.08.27 |
[BooksReview] effectiveJava - 지역변수의 유효범위 최소화 (0) | 2017.08.27 |