模式簡述
- 有些對象在程序當中是無法存在多個的,例如車票售賣系統裏,車票管理類只能有一個;圖書系統當中借閱簿只能有一個,這些對象一旦存在多個,被隨意使用,就必然會帶來錯誤
- 單例對象的類只能允許一個實例存在,意味着只有通過該類提供的靜態方法來得到該類的唯一實例,通過單例模式來控制對象的唯一。
使用目的
- 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點
結構圖
使用設計模式的目的是爲了讓代碼結構清晰,組織簡單,避免過度設計
- 單例模式的重點主要在獲取上。出於安全性考慮,可以直接使用餓漢式;兼顧內存及效率的考慮,這裏延伸出了懶漢式的多重變種(去掉不安全的變種,就保留下雙重校驗法)、靜態內部類、枚舉的方式
- 代碼Demo:單例模式:多種獲取實現