kotlin 单例模式

最近在学习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();
        }
    }
}

你可能感兴趣的:(kotlin 单例模式)