이펙티브 자바 정리(2)
-
이펙티브 자바 정리 2일차
이펙티브 자바 정리 2일차 private 생성자나 열거 타입으로 싱글턴임을 보증하라 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려워질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글턴이 아니라면 싱글턴 인스턴스를 가짜(mock) 구현으로 대체할 수 없기 때문이다. 싱글턴을 만드는 방식은 보통 둘 중 하나다. 두 방식 모두 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 하나 마련해둔다. Public static final 필드 방식의 싱글턴 public class Elvis{ public static final Elvis INSTANCE = new Elvis(); private Elvi..
2021.08.11 -
이펙티브 자바 정리 1일차
생성자 대신 정적 팩터리 메서드를 고려하라 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 클래스는 클라이언트에 public 생성자 대신(혹은 생성자와 함께) 정적 팩토리 메서드를 제공할 수 있다. 장점 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. (이 능력은 반환할 객체의 클래스를 자유롭게 선택할 수 있게 하는 ' 엄청난 유연성을 가진다.') 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환 할 수 있다. (클라이언트는 팩터리가 건네주는 객체가 어느 클래스의 인스턴스인지 알 수도 없고 알 필요도 없다...
2021.08.02