1. 程式人生 > >Kotlin中單例Singleton模式

Kotlin中單例Singleton模式

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支援全域性函式和變數,因此可以直接使用全域性函式和變數來代替靜態方法和靜態成員變數。