美文网首页
Kotlin双空校验式单例

Kotlin双空校验式单例

作者: 一个大西瓜CPI | 来源:发表于2018-07-21 10:37 被阅读5次

以数据库创建为例
在Java中

@Database(entities = {User.class}, version = 1)
public abstract class UsersDatabase extends RoomDatabase {

    private static volatile UsersDatabase INSTANCE;

    public abstract UserDao userDao();

    public static UsersDatabase getInstance(Context context) {
        if (INSTANCE == null) {
            synchronized (UsersDatabase.class) {
                if (INSTANCE == null) {
                    INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                            UsersDatabase.class, "Sample.db")
                            .build();
                }
            }
        }
        return INSTANCE;
    }

}

在Kotlin中

@Database(entities = arrayOf(User::class), version = 1)
abstract class UsersDatabase : RoomDatabase() {

    abstract fun userDao(): UserDao

    companion object {

        @Volatile private var INSTANCE: UsersDatabase? = null

        fun getInstance(context: Context): UsersDatabase =
                INSTANCE ?: synchronized(this) {
                    INSTANCE ?: buildDatabase(context).also { INSTANCE = it }
                }

        private fun buildDatabase(context: Context) =
                Room.databaseBuilder(context.applicationContext,
                        UsersDatabase::class.java, "Sample.db")
                        .build()
    }
}

相关文章

  • Kotlin 的单例模式

    Kotlin 的单例模式(5种) Kotlin 的5种单例模式: 饿汉式 懒汉式 线程安全的懒汉式 双重校验锁式 ...

  • 单例模式

    单例模式 单例模式简介基本用法Kotlin 不带参Kotlin 带参饿汉式懒汉式双重校验锁静态内部类枚举集合管理问...

  • Kotlin双空校验式单例

    以数据库创建为例在Java中 在Kotlin中

  • 每天一个设计模式

    1.单例模式 懒汉式,线程不安全 懒汉式,线程安全 饿汉式 双检锁/双重校验锁(DCL,即 double-chec...

  • Kotlin 的单例模式

    Kotlin 的单例模式 1. 在 Java 中的单例模式 懒汉式单例模式,并且是线程安全 2. 在 Kotlin...

  • kotlin实现单例模式

    1.懒汉式实现单例模式 2.线程安全懒汉式实现单例模式 3.双重校验懒汉式实现单例模式 4.静态内部类方式实现单例模式

  • 深入理解单例模式

    前言 ​ 单例模式有很多种形式:饿汉式、懒汉式、DCL(双重校验)、静态内部类、容器单例、ThreadLoca...

  • kotlin<第四篇>:基础(2)

    一、判空 二、let、with、run、apply、also 三、单例 kotlin 单例实现: 四、静态方法 五...

  • 单例模式

    单例模式(饿汉式) 单例模式(懒汉式) 解决两种的弊端的单例模式(双锁)

  • Kotlin学习笔记---单例模式(一)

    前言 关于单例模式,Java中最常见的设计模式,关于懒汉式还是饿汉式,各有优势,而Kotlin中也少不了单例模式,...

网友评论

      本文标题:Kotlin双空校验式单例

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