[TIL] 230203
in TIL on Effective Java
✏️ Check Box
📌 정리
아이템3. private 생성자나 열거타입으로 싱글턴을 보증
Spring에서도 Bean이 싱글톤으로 관리되는 것으로 알고있다. 다만 개념적으로 알았지만 싱글턴 패턴 구현에 대해 직접 구현해보진 않았다.
싱글턴을 보증하는 두가지 방법을 제시하는데 public static final
멤버를 사용하는 방법, 그리고 private static final
과 정적 팩토리 메서드
를 사용하는 방법이다.
책에서는 한가지 방법을 더 제시하는데 원소가 하나인 Enum
타입을 선언하는 것이다. 어찌보면 Enum의 원소가 public static final 멤버와 유사하니 구성이 가능한 것으로 보인다.
아이템4. 인스턴스화를 막는 방법은 private 생성자
당연한 얘기지만, 책에서 주의를 당부하는 것은 생성자를 선언하지 않으면 컴파일러에서 기본 생성자를 제공하는 부분이었다.
훗날 static 멤버만 사용하는 유틸 클래스를 선언할 일이 있다면 해당 클래스는 인스턴스화가 필요없을 것이므로 유의해서 프로그래밍 해야겠다.
Back to [TIL] 230123