最近在学习kotlin,下面总结一下 单例模式的写法:
1.饿汉模式,顾名思义,饿汉模式,只要有资源就去new 一个对象,在java中,对应的就是 new ClassName 这种。而kotlin 的写法则如下:
//饿汉
object SingleClass2;
2.懒汉模式写法:
//懒汉
class SingleClass private constructor() {
companion object {
private var instance: SingleClass? = null;
// Synchronized添加后就是线程安全的的懒汉模式
@Synchronized
fun get(): SingleClass? {
if (instance == null) {
instance = SingleClass();
}
return instance;
}
}
}
3.DCL模式的懒汉模式写法:
//简易版本的DCL kotlin 写法
class SingleClass2 private constructor() {
companion object {
val instance: SingleClass2 by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
SingleClass2();
}
}
}
网友评论