Kotlin 单例模式几种写法
作者:
贼噶人 | 来源:发表于
2020-10-26 16:22 被阅读0次
使用对象声明方式,该方式线程安全
open class MyClass {
}
object MySingleton : MyClass()
使用companion object ,通过lazy 来实现线程安全
open class MyClass {
fun hello(){
}
companion object MyCompanion{
val singleton:MyClass by lazy { MyClass() }
}
}
自己实现同步 (原理是每个类的companion object 和Class 对象一样都是唯一的)
open class MyClass {
fun hello(){
}
companion object MyCompanion{
private var singleton:MyClass? = null
fun getInstance():MyClass? {
synchronized(MyClass::class.java) {
if (null == singleton) {
singleton = MyClass()
}
}
return singleton
}
}
}
本文标题:Kotlin 单例模式几种写法
本文链接:https://www.haomeiwen.com/subject/ttoamktx.html
网友评论