kotlin实现单例

2019-06-03  本文已影响0人  成虫_62d0

java实现单例模式

一直习惯于java的写法,java实现单例主要的思想是构造函数私有,然后考虑线程安全,在实现的时候又有double-check/静态内部类/枚举等实现方式。单例从初始化顺序来说, 又分为“懒汉式”/“饿汉式”。

kotlin实现单例模式

class NetworkManager private constructor(){
    //kotlin伴生对象(实现java中静态变量和静态方法)
    companion object StaticParams{
        private const val HALF_DAY_MILLIS = 12 * 60 * 60 * 1000;
    }
}
    class NetworkManager private constructor(){
    //kotlin伴生对象(实现java中静态变量和静态方法)
    companion object StaticParams{
        private const val HOUR_12_MILLIS = 12 * 60 * 60 * 1000;

        private var instance : NetworkManager? = null

        get() {
            if (field == null) {
                field = NetworkManager()
            }
            return field
        }

        @Synchronized
        fun get() : NetworkManager{
            return instance!!
        }
    }
}

如果有朋友跟我一样对kotlin完全是新手,可以参照这篇文章了解object跟companion object的区别。

上一篇 下一篇

猜你喜欢

热点阅读