美文网首页
kotlin实现单例模式

kotlin实现单例模式

作者: Bfmall | 来源:发表于2022-04-19 18:38 被阅读0次

    1.懒汉式实现单例模式

    class Singleton private constructor() {
    
        companion object{
            private var instance:Singleton ?= null
                get() {
                    if (field==null){
                        field = Singleton()
                    }
                    return field
                }
            fun get(): Singleton {
                return instance!!
            }
        }
    }
    

    2.线程安全懒汉式实现单例模式

    /**
     * 添加了 @Synchronized注解
     */
    class Singleton private constructor() {
    
        companion object{
            private var instance:Singleton ?= null
                get() {
                    if (field==null){
                        field = Singleton()
                    }
                    return field
                }
            @Synchronized
            fun get(): Singleton {
                return instance!!
            }
        }
    
    }
    

    3.双重校验懒汉式实现单例模式

    class Singleton private constructor() {
    
        companion object{
            val instance : Singleton  by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED){
                Singleton()
            }
        }
    }
    

    4.静态内部类方式实现单例模式

    class Singleton private constructor(){
    
        companion object{
            val instance = Holder.instance
        }
    
        private object Holder{
           val instance = Singleton()
        }
    }
    

    相关文章

      网友评论

          本文标题:kotlin实现单例模式

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