꾸준한 스터디
article thumbnail
[Item 3] private 생성자나 열거 타입으로 싱글턴임을 보증하라
Effective Java/정리 2023. 1. 7. 00:52

싱글턴은 인스턴스를 오직 하나만 생성하여 재사용하는 클래스이며 무상태, 유일 객체이다. 인터페이스 정의 없이 클래스를 싱글턴으로 만들면 유일 객체이므로 비용 등이 고려 될 경우 테스트가 불가피해진다. 따라서, 인터페이스 정의 및 구현을 통해 Mock 객체 구현을 통해 테스트를 진행해야한다. mock 테스트 방식이 궁금하다면 하단 github 링크의 mock_test 예제 코드를 참고 바란다. 싱글턴 방식에는 필드, 정적 팩터리, 열거 타입 3가지로 볼 수 있다. 필드 방식 private 기본 생성자를 만들어 놓았기에 필드를 초기화 할 때 한번 호출되어 하나뿐임이 보장된다. 또한 API를 통해 싱글턴 클래스 임을 명확하게 드러낼 수 있고 방식이 간결하다. public class Person { public..