1.1 定義
單例(singleton)模式的定義:指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。例如,windows 中只能開啟乙個任務管理器,這樣可以避免因開啟多個任務管理器視窗而造成記憶體資源的浪費,或出現各個視窗顯示內容的不一致等錯誤。
在計算機系統中,還有 windows 的**站、作業系統中的檔案系統、多執行緒中的執行緒池、顯示卡的驅動程式物件、印表機的後台處理服務、應用程式的日誌物件、資料庫的連線池、**的計數器、web 應用的配置物件、應用程式中的對話方塊、系統中的快取等常常被設計成單例。
單例模式有 3 個特點:
1.2 單例模式的結構
單例模式的主要角色如下:
1.3 uml類圖
1.4 問題由來
在有些系統中,為了節省記憶體資源、保證資料內容的一致性,對某些類要求只能建立乙個例項,這就是所謂的單例模式
1.5 實現思路
私有化建構函式,不讓外部訪問,提供乙個對外方法該單例例項物件方法,保證該單例類只能由對外方法獲取,定義靜態類變數並初始化建立類物件,保證該單例物件,由單例類自行建立。
1.6 解決方案
/**
* @author tbb
* 餓漢單例模式類
*/public
class
hungryman
public
static hungryman getinstance (
)}
/**
* @author tbb
* 懶漢單例模式類
*/public
class
lazyman
public
static
synchronized lazyman getinstance()
return lazyman;
}}
設計模型之工廠模式 含UML完整例項
1.1 定義 乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。工廠方法模式的主要優點有 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程 在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則 工廠方...
設計模型之命令模式含UML完整例項
1.1 定義與特點 命令 command 模式的定義如下 將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存 傳遞 呼叫 增加與管理。命令模式的主要優點如下 命令模式的缺點是 1.2 模式的結構 命令模式包含以下主要角色 1...
設計模型之抽象工廠模式 含UML完整例項
1.1 定義與特點 用來生產不同產品族的全部產品。對於增加新的產品,無能為力 支援增加產品族 使用抽象工廠模式一般要滿足以下條件 1 系統中有多個產品族,每個具體工廠建立同一族但屬於不同等級結構的產品。2 系統一次只可能消費其中某一族產品,即同族的產品一起使用。抽象工廠模式除了具有工廠方法模式的優點...