목록2024/09 (3)
개발 기록
(4) 인스턴스화를 막으려거든 private 생성자를 사용하라 정적 메서드와 정적 필드만을 담은 클래스는 인스턴스로 만들어 사용하려는 클래스가 아님.- 생성자를 명시하지 않을 경우 컴파일러가 자동으로 기본 생성자를 만들어줌- 이때는 private 생성자를 추가하면 클래스의 인스턴스화 막을 수 있음public class UtilityClass { // 인스턴스화 방지용 private Utilityclass() { throw new AssertionError(); }}- 클래스 안에서 실수라도 생성자 호출을 막기위해 error 를 던져도 좋음- 하지만 생성자를 호출하지 않는 코드라 한번에 이해가 어려우니 주석을 달자.- 상속 불가능. (5) 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 클래스가 내..
(3) private 생성자나 열거 타입으로 싱글턴임을 보증하라 *싱글턴 : 인스턴스를 오직 하나만 생성할 수 있는 클래스싱글턴 인스턴스는 가짜 구현으로 대체할 수 없기 때문에 이를 사용하는 클라이언트를 테스트하기가 어려워질 수 있다.(타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든게 아니라면.) 보통 싱글턴을 만드는 방식.1. public static final 필드 방식의 싱글턴public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuilding() { ... }}장점 : 간결함, 해당 클래스가 싱글턴임이 API에 명백히 드러난다. 2..