Kotlin 的单例模式的书写方式

版权声明:本文为原创文章,未经允许不得转载。

不带参数

第一种

public class SingleCase private constructor() {

    private object Holder { val INSTANCE = SingleCase () }

    companion object {
        val instance: SingleCase by lazy { Holder.INSTANCE }
    }
    var b:String? = null
}

第二种

public class SingleCase private constructor() {
    companion object {
        val instance: = SingleCase ()
    }
    var b:String? = null
}

第三种

public class SingleCase private constructor() {
  companion object {

            /*单例*/
            @Volatile
            private var INSTANCE: SingleCase ? = null

            /*获取单例*/
            val instance: SingleCase 
                get() {
                    if (INSTANCE == null) {
                        synchronized(SingleCase ::class.java) {
                            if (INSTANCE == null) {
                                INSTANCE = SingleCase ()
                            }
                        }
                    }
                    return INSTANCE!!
                }
        }
}

...

带参数

class SingleCase private constructor(str: String) {
    var string: String = str;
    companion object {
        @Volatile
        var instance: SingleCase ? = null

        fun getInstance(c: String): SingleCase {
            if (instance == null) {
                synchronized(SingleCase ::class) {
                    if (instance == null) {
                        instance = SingleCase (c)
                    }
                }
            }
            return instance!!
        }
    }
}

总结

这些也只是我在开发过程中发现和总结的东西,如果谁有更好的方法记得留言或者邮箱(1732685009@qq.com

版权声明:本文为原创文章,未经允许不得转载。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,017评论 25 709
  • (此故事百分之九十是事实,百分之十是虚构,但切记不要对号入座) 俗话说得好“百年修得同船渡,千年修...
    策马奔腾2阅读 3,576评论 5 4
  • 三年前遇到了此生最爱的第三个人,没想到很幸运的他也爱上我了,只不过是在一年前。虽然我爱的比他深,爱的比他久,但我...
    高芯芯要开开心心阅读 2,761评论 0 0
  • 显示形式 示例图片 显示图层 示例图片 相对定位 运行图片 绝对定位 示例图片 固定定位 示例图片 浮动定位 图1...
    Lv_0阅读 1,378评论 0 1