美文网首页
3. Kotlin单例实现方式

3. Kotlin单例实现方式

作者: 枫叶栈 | 来源:发表于2019-08-22 11:15 被阅读0次

饿汉式

object SimpleSington {
  fun test() {}
}
//在Kotlin里调用
SimpleSington.test()

//在Java中调用
SimpleSington.INSTANCE.test();

这个版本的实现,其实是个语法糖(Kotlin漫山遍野都是语法糖)。其真正的实现类似于这样

public final class SimpleSington {
   public static final SimpleSington INSTANCE;

   private SimpleSington() {
      INSTANCE = (SimpleSington)this;
   }

   static {
      new SimpleSington();
   }
}

懒汉式加载

class LazySingleton private constructor(){
    companion object {
        val instance: LazySingleton by lazy { LazySingleton() }
    }
}

lazy默认情况下是线程安全的 。

相关文章

网友评论

      本文标题:3. Kotlin单例实现方式

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