Language/kotlin
[Kotlin] Singleton
점냥
2020. 6. 1. 20:30
반응형
java와는 다르게 kotlin에서 singleton은 아주 간편하게 구현할 수 있다.
Object 기본 사용
object A
var a : A = A
kotlin의 object
키워드는 Singleton
을 보장해준다. 한 줄이여서 너무 간편하다.. 하지만 object
는 생성자를 지원하지 않기 때문에 만약 Singleton을 생성할 때 매개변수가 필요하다면 사용할 수 없다.
companion object로 구현
class A {
companion object {
@Volatile private var instance: Singleton? = null
@JvmStatic fun getInstance(context : Context): A =
instance ?: synchronized(this) {
instance ?: Singleton(context).also {
instance = it
}
}
}
}
companion object
는 java에서의 static
과 유사하게 클래스당 하나임을 보장하기 때문에 위 방법으로 intance 객체의 Singleton을 구현할 수 있다.
참고
반응형