Android

Android Singleton 패턴 객체

열정창작소 2023. 1. 4. 17:50

DCL(Double Checked Locking)

 

예)

class SingletonManager private constructor(context: Context) {

    companion object {
        @Volatile
        private var instance: SingletonManager? = null

        fun getInstance(context: Context) = instance ?: synchronized(SingletonManager::class.java) {
            instance ?: SingletonManager(context).also {
                instance = it
            }
        }
    }
}

Enum을 통한 사용, LazyHolder 패턴을 통한 사용등...