C 兩種設計模式 單例模式和觀察者監聽者模式

2021-08-04 05:33:36 字數 991 閱讀 5075

一、c++中有23種設計模式,大致分為建立型模式,結構型模式以及行為模式,

在這裡自己實現一下單例模式以及觀察者和監聽者模式

二、單例模式

我們通過維護乙個static的成員變數來記錄唯一的物件例項,通過提供乙個static的介面instance來獲得唯一的例項,就是乙個簡單的類的實現

class singleton

return mpsingleton;

}private:

singleton(){}

static singleton *mpsingleton;

};singleton::mpsingleton = null;

三、觀察者監聽者模式,建立乙個一對多的依賴關係,重要的是mvc模式,逆置了事件的發生和事件的處理,同樣 因為是一對多的關係,所以在這個設計的過程中,採用繼承的方式,並且將基類宣告為抽象類,那何為抽象類呢,就是類中有純虛函式,好了不扯了 回到基類,大家也知道 基類指標可以指向派生類物件,另外在設計觀察者的時候,因為有可能乙個監聽者對好幾件事情都感興趣,一件事又有好幾個監聽都感興趣,所以將觀察者的成員變數型別宣告為map> _obmap;也是用的現成的stl庫裡面的東西 

**如下:

class listener

virtual void handlmessage(int message) = 0;

//純虛函式 擁有純虛函式的類成為抽象類

protected:

string _name;

};class listener1 : public listener

//從基類繼承成員變數 呼叫基類構造方法初始化該變數

void handlmessage(int msgid)

void displaymessage(int msgid)}}

private:

map> _obmap;

int msgid;

};

安卓中的兩種設計模式 單例模式,觀察者模式

通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例模...

設計模式之單例模式和觀察者模式

單例模式 定義 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項 單例模式的優勢 單例模式的缺點 單例模式的使用場景 注意事項 當使用 singleton null 判斷是否建立物件的時候,高併發情況下可能會出現錯誤,執行緒a判斷為真進行建立物件,執行緒b判斷時a物件為建立成功,同樣...

三種設計模式 單例模式 組合模式 觀察者模式

設計模式 今天我們就聊一下這三個設計模式 單例模式 也就是說,當我們使用建構函式,每一次 new 出來的物件 屬性 功能 方法 完全一樣 的時候,我們把他設計成單例模式 核心 應用 creatediv.prototype.init function text 準備把這個 creatediv 做成單例...