最近在學習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();
}
}
}