最近在學(xué)習(xí)kotlin,下面總結(jié)一下 單例模式的寫法:
1.餓漢模式埃碱,顧名思義猖辫,餓漢模式,只要有資源就去new 一個(gè)對(duì)象砚殿,在java中啃憎,對(duì)應(yīng)的就是 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模式的懶漢模式寫法:
//簡(jiǎn)易版本的DCL kotlin 寫法
class SingleClass2 private constructor() {
companion object {
val instance: SingleClass2 by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
SingleClass2();
}
}
}