單例模式(Singleton Pattern)
概述
Singleton模式要求一個類有且僅有一個實例,并且提供了一個全局的訪問點。這就提出了一個問題:如何繞過常規(guī)的構造器,提供一種機制來保證一個類只有一個實例?客戶程序在調(diào)用某一個類時,它是不會考慮這個類是否只能有一個實例等問題的,所以,這應該是類設計者的責任,而不是類使用者的責任。
從另一個角度來說,Singleton模式其實也是一種職責型模式。因為我們創(chuàng)建了一個對象,這個對象扮演了獨一無二的角色,在這個單獨的對象實例中,它集中了它所屬類的所有權力,同時它也肩負了行使這種權力的職責!
意圖
保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
使用場景
1.類只能有一個實例,而且必須從一個為人熟知的訪問點對其進行訪問。
2.這個唯一的實例只能通過子類化進行擴展,而且擴展對象不會破壞客戶端代碼。
要點
1.某個類只能有一個實例
2.他必須自行創(chuàng)建這個對象
3.必須自行向整個系統(tǒng)供這個實例
4.這個方法必須是個靜態(tài)類