概念:
從字面意思不難理解,單例模式就是指某個類僅能建立乙個例項。
實現:
實現單例模式常有兩個誤區:
一、看見單例時,最容易聯想到的就是把乙個類的所有屬性以及方法均設為靜態的。
初聽上去,這種方法是挺不錯的,但靜態屬性、方法是在類載入時就初始化了,得到自己的空間,這不是我們能夠控制的,當我們程式中有大量這種方法實現的單例模式,那麼在程式最開始執行,將造成記憶體的使用大大增加;而這些例項短時間都不使用,那麼這些記憶體白白被浪費了。
二、既然只能建立乙個物件,那我設定乙個靜態變數,每次呼叫構造方法前用它來判斷是否可以建立物件。
這樣實現的話,那關鍵因素就完全靠這個類的使用者來控制了,假如使用者是個很聽話的人並且記性很好那還好辦,假如不是呢?
看看最常見的實現方法:
**中有詳細註解,就不在這解釋了!當我們寫的類只允許建立乙個物件時,就可以採用單例模式!
C 常用設計模式之 單例模式
單例模式沒啥好說解說的,這個模式太經典了,以至於即使你沒有接觸過設計模式也一定聽過單例模式的大名。網上關於單例模式的例子有很多,這裡就算做乙個歸納總結吧!單例模式的定義 保證乙個類僅有乙個例項,並提供乙個該例項的全域性訪問點。uml結構圖如下 網路上常見的單例模式實現,有以下幾種 類的宣告 clas...
常用設計模式 單例模式
1.單例模式的特點 1.單例類在系統中僅有乙個例項 2.單例類必須自己建立自己的例項 3.單例類必須向系統中的其他物件提供這個例項 2.單例模式的兩種模式 public class test 2.1 餓漢模式 public class singleton 建立類的唯一例項 private stati...
常用設計模式 單例模式
一 單例模式定義 單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池 快取 日誌物件 對話方塊 印表機 顯示卡的驅動程式物件常被設計成單例。這些應用都或多或少具有資源管理器的功能。每台計算機可以有若干個印表機,但只能有乙個printer spooler,...