이펙티브 자바 3판 정리

devdo·2022년 7월 14일
0

Java

목록 보기
48/59
공부한 거 계속 업데이트 예정...

item1. 생성자 대신 satic 팩터리 메서드를 고려하라.

public static Foo withName(String name) {
	return new Foo(name);
}

public static void main(String args) {
	Foo foo = Foo.withName("dsg");
}

장점
1) 이름을 가질 수 있다. (메서드 이름이 잘 보이잖아)
2) 새로운 객체를 생성하지 않을 수 있다.
3) 리턴 타입의 하위 타입 객체를 반환할 수도 있다.
4) 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수도 있다.(3이랑 연장선상 이야기)

ex) EnumSet

5) static 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다.


item2. 생성자에 매개변수가 많다면 빌더를 고려하라.


item3. private 생성자나 열거 타입으로 싱글턴임을 보증하라.


item4. 인스턴스화를 막으려거든 private 생성자를 사용하라.

profile
배운 것을 기록합니다.

0개의 댓글