object SingletonObj {
}
이게 싱글톤 구현 끝이다!
코틀린에선 static 개념이 사라지면서 object 라는 개념이 등장한다. object 로 클래스를 정의하게 되면, 클래스를 정의하는 동시에 인스턴스를 생성한다. 이 때, 무조건 단일 인스턴스 생성을 보장한다.
이 클래스 안에 필요한 객체 (e.g. Retrofit 등) , 메소드 등을 정의해두면 프로그램 전역에서 이를 활용할 수 있다.
심지어는 다양한 제약 조건 (멀티 쓰레딩 환경 등) 을 고려해줄 필요 없이, Thread-safe 하고 Lazy 한 초기화(
덤프 떠서 확인해보니까 쓰이기 전까지 인스턴스화 되어있지 않은걸 보니 맞다고 판단했어욤)를 언어 차원에서 지원해준다. 따라서 개발자는 이러한 것들을 신경쓰지 않아도, 알아서 안전하고 효율적이게 싱글톤이 구현된다.