Kotlin 언어는 Singletone을 구현하는 언어 차원에서 제공한다.
바로 object keyword를 사용한다.
object SingleToneDefine {
init {
println("init fun has been called")
}
}
println("before use")
SingleToneDefine
$ before use
$ init fun has been called
Singletone을 구현하는 다른 방법은 object expression 인데, 이를 이용하면 anonymous class 선언이 가능하다.
val anonymousObject = object: Any() {
init {
println("anonymous has been initialized")
}
}
$ anonymous has been initialized
Class 선언이 anonymous이기때문에 다른데서 Object를 생성 할 수 없다. 즉, Singletone이다.
Kotlin에서 Singletone을 선언하는 방법은 아래와 같다.
1. Object 선언
2. Anonynous Class 를 이용하는 객체 표현식