設計模式之單例模式

2021-09-26 02:44:41 字數 1417 閱讀 8814

一.單例模式的定義

單例模式,是一種常用的設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的類乙個類只有乙個例項。即乙個類只有乙個物件例項。

二.單例模式的結構圖

三.具體實現方法

(1)將構造方法私有化,使其不能在類的外部通過new關鍵字例項化該類物件。

(2)在該類內部產生乙個唯一的例項化物件,並且將其封裝為private static型別。

(3)定義乙個靜態方法返回這個唯一物件。

四.實現**

//貪婪載入

class singleton

private:

singleton(){}//建構函式

singleton(const singleton&);//拷貝建構函式

static singleton* psingle;

};singleton* singleton::psingle = new singleton();

//懶漢模式 延時載入

class singleton

unlock();

} return psingle;

}private:

singleton(){}//建構函式

singleton(const singleton&);//拷貝建構函式

static singleton* psingle;

};singleton* singleton::psingle = null;

五.具體應用場景singleton 模式經常和 factory(abstractfactory)模式在一起使用,因為系統中工廠物件一般來說只要乙個.

以下場景一般用於單例模式:

1.windows的recycle bin(**站)

2.**的計數器,一般也是採用單例模式實現,否則難以同步

3. 應用程式的日誌應用,這一般是由於共享的日誌檔案一直處於開啟狀態,因為只能有乙個例項去操作,否則內容不好追加。

4. web應用的配置物件的讀取,這個是由於配置檔案是共享的資源

5. 資料庫連線池的設計,因為資料庫連線是一種資料庫資源。資料庫軟體系統中使用資料庫連線池,主要是節省開啟或者關閉資料庫連線所引起的效率損耗,這種效率上的損耗還是非常昂貴的,因為何用單例模式來維護,就可以大大降低這種損耗。

6.多執行緒的執行緒池的設計一般也是採用單例模式,這是由於執行緒池要方便對池中的執行緒進行控制

7.作業系統的檔案系統,乙個作業系統只能有乙個檔案系統

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...

設計模式之 單例模式

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...