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關鍵字標記