Kotlin學習筆記之單例創建

Java創建單例核心代碼:

public static CommonHttp getInstance() {
        if (commonHttp == null) {
            synchronized (CommonHttp.class) {
                if (commonHttp == null)
                    commonHttp = new CommonHttp();
            }
        }
        return commonHttp;
    }

這是一段很金典的Java創建單例代碼

使用kotlin創建

companion object {

        private var commonHttp: CommonHttp? = null

        val instance: CommonHttp
            get() {
                if (commonHttp == null) {
                    synchronized(CommonHttp::class.java) {
                        if (commonHttp == null)
                            commonHttp = CommonHttp()
                    }
                }
                return commonHttp!!
            }
    }

這裏仍然是使用class.java作爲同步鎖

這裏原理其實是使用kotlin伴生對象來處理,詳細可以去了解*companion關鍵字標記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章