設計模式C 之三(Singleton單例模式)

2021-09-30 09:09:27 字數 1616 閱讀 4478

單例模式看起來也蠻簡單的,就是在系統中只允許產生這個類的乙個例項,既然這麼簡單,就直接貼**了。更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。

3.1.解釋

main(),大臣

cemperor,需要單例的類

說明:很多大臣拜見的皇帝,只有乙個。體現在物件導向方面,cemperor定義乙個靜態指標,和乙個靜態函式,私有化建構函式、析構函式、建構函式複製、過載賦值語句。

注意:執行緒安全,採用互斥體的方式實現。

看**:

#pragma once

#include

using std::cout;

using std::endl;

using std::string;

class cemperor

~cgarbo()

releasemutex(m_pmutex);

}if (null != m_pmutex)}};

static cgarbo m_garbo;

};#include "stdafx.h"

#include "emperor.h"

#include

using std::cout;

using std::endl;

using std::string;

cemperor* cemperor::m_pemperor = null;

handle cemperor::m_pmutex = createmutex(null, false, null);

cemperor::cgarbo cemperor::m_garbo;

cemperor::cemperor(void)

cemperor::~cemperor(void)

void cemperor::emperorinfo(void)

;sprintf_s(msgbuffer, 50, "皇ê帝?某3某3某3... ...(%s).", m_emperortag.c_str());

單例模式比較簡單,但在專案中使用的時候,需要明確只呼叫cemperor的getinstance函式來獲取例項。在c#裡

有更簡單的方法,那就是宣告唯讀的靜態變數,比c++簡單多了。

但c++更吸引人們去研究,這就是軟體研發的樂趣吧。

設計模式 之 三

一 單例模式 飽漢模式public class singlepattern2 return sp 餓漢模式public class singlepattern1 兩種模式差別在有沒有在類被載入時就給建立好物件,餓漢 即等不及了要吃東西所以要提前建立好物件,飽漢 正好相反 二 模板方法 給出演算法的骨...

設計模式之三 工廠模式

如果要擴充套件的話,則要修改源 這樣如果以後產生的phone型別很多,那麼就要一直修改,維護成本高 如果萬一你哪個型別寫錯了怎麼辦 所以出現了工廠模式。工廠模式簡單來說就是乙個工廠對應乙個產品。比如說iphonefactory產生iphone系列的手機,xiaomifactory產生xiaomi系列...

設計模式之三 Singleton

設計模式之三 singleton 問題 假設我們電腦只有乙個印表機,我們用乙個類來管理印表機資源,如果像一般的類一樣,使用者可以建立多個類的例項,那麼勢必會造成系統資源的大量浪費,為了達到節約資源的目的,我們需要尋找乙個新的方法 解決方案 我們在類內建立乙個靜態的本類指標,初始化的時候為其賦值,以後...