美文网首页
kotlin实现单例

kotlin实现单例

作者: 成虫_62d0 | 来源:发表于2019-06-03 09:17 被阅读0次

    java实现单例模式

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

    kotlin实现单例模式

    • kotlin的常量和静态方法

      kotlin可以使用伴生对象的概念来实现静态常量和方法,关键字为companion object;代码如下

    class NetworkManager private constructor(){
        //kotlin伴生对象(实现java中静态变量和静态方法)
        companion object StaticParams{
            private const val HALF_DAY_MILLIS = 12 * 60 * 60 * 1000;
        }
    }
    
    • kotlin的单例实现
        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的区别。

    相关文章

      网友评论

          本文标题:kotlin实现单例

          本文链接:https://www.haomeiwen.com/subject/lbuqxctx.html