Kotlin 設計模式 //TODO

單例設計模式

單例模式,是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱爲單例的特殊類。
通過單例模式可以保證系統中,應用該模式的類一個類只有一個實例。即一個類只有一個對象實例。
伴生對象單例(Companion Object)
每個類都可以實現一個伴生對象,它是該類的所有實例共有的對象。它將類似於Java中的靜態字段。
class App : Application() {
    companion object {
        lateinit var instance: App
            private set
    }
    override fun onCreate() {
        super.onCreate()
        instance = this
    }
}
該方法有一定的侷限性,因爲在系統調用onCreat( )方法時纔會賦值。該方法類似內部類單例模式。
內部類單例
使用內部類持有外部對象的應用,實現單例。
class  Singleton private constructor( ) { 
	companion object {  
		  fun getInstance(): Singleton {  
     			 return Holder.instance   
		 }
	}
	private object Holder { 
	   val instance = Singleton ( )
	}
} 
object 類型單例
otlin 中的單例模式可以使用一個特殊的類型object,這個 object 不是Java中所有類的父類(Object),
而是創建單例時使用的,我們都知道,Java中單例有懶漢式、餓漢式,雙重檢查鎖等幾種單例變種。
但是在Kotlin中只要object一種單例實現方式即可滿足我們的需求。
object Singleton { 

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