不积硅步,无以至千里 ----送给正在阅读的你。
kotlin的单例模式与Java有所不同。下面让我们一起看看在kotlin中如何实现单例。
1.懒汉式
定义一个普通类,然后在内部定义伴生对象。伴生对象内部的属性与方法,类似于静态。可以直接被调用。
class Singletion private constructor() {
//伴生对象
companion object{
private var instance :Singletion?=null
get() {
if (field==null){
field = Singletion()
}
return field
}
fun getInstanceSingletion() = instance!!
}
}
2.饿汉式
Object定义的类为单例类
Object Singletion
3.懒汉式+双重校验
通过懒加载的形式进行模式声明 mode = LazyThreadSafetyMode.SYNCHRONIZED。
class Singletion private constructor(){
companion object{
val instance:Singletion by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED)
{
Singletion()
}
}
}