Kotlin中單例Singleton模式
阿新 • • 發佈:2018-12-16
package loaderman.bar class Singlenton private constructor(){ public var value:Singlenton?=null private object mHolder{ val INSTSNCE=Singlenton() } companion object Factory{ fun getInstance():Singlenton{ return mHolder.INSTSNCE } } }
package loaderman import loaderman.demo.Customer import loaderman.demo.Singlenton fun main(arg: Array<String>) { //Singlenton()//編譯錯誤 由於主構造器使用private,無法直接呼叫主構造器 val instance1 = Singlenton.getInstance() val instance2 = Singlenton.getInstance() println(instance1) println(instance2) }
kotlin與Java實現方式不同主要在於kotlin類不支援靜態方法和成員。由於kotlin支援全域性函式和變數,因此可以直接使用全域性函式和變數來代替靜態方法和靜態成員變數。