引言
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。
創(chuàng)新互聯(lián)建站專業(yè)提供
做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、
成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
用來解決兩個(gè)不相關(guān)對(duì)象之間的一對(duì)一或者一對(duì)多的通信模型。
什么是觀察者設(shè)計(jì)模式
觀察者模式是一種對(duì)象行為模式。它定義對(duì)象間的一種一對(duì)多的依賴關(guān)系, 當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。在觀察者模式中,主體是通知的發(fā)布者,它發(fā)出通知時(shí)并不需要知道誰是它的觀察者,可以有任意數(shù)目的觀察者訂閱并接受通知。觀察者模式不僅被廣泛應(yīng)用于軟件界面元素之間的交互,在業(yè)務(wù)對(duì)象之間的交互、權(quán)限管理等方面也有廣泛的應(yīng)用。
解決的問題
定義了對(duì)象間的一種一對(duì)多的組合關(guān)系,以便一個(gè)對(duì)象的狀態(tài)發(fā)生時(shí),所有依賴于它的對(duì)象都得到通知并自動(dòng)刷新。
觀察者和被觀察者之間存在“觀察”的邏輯關(guān)系,當(dāng)被觀察者發(fā)生變化時(shí),觀察者就會(huì)觀察到這樣的變化,并作出相應(yīng)的響應(yīng)。
編程思路
設(shè)定兩者類,一個(gè)為觀察者類,一個(gè)為被觀察者類
觀察者類中,定義一個(gè)對(duì)某個(gè)事件感興趣的處理函數(shù),一般也叫做槽函數(shù)
被觀察者類中,定義一個(gè)數(shù)據(jù)結(jié)構(gòu),用來保存觀察者對(duì)某一個(gè)事件id(信號(hào))感興趣,使用數(shù)據(jù)結(jié)構(gòu)建立信號(hào)與對(duì)象之間的映射關(guān)系
被觀察者類中,定義兩個(gè)方法函數(shù):
一個(gè)方法為:添加觀察者與其感興趣的事件id(信號(hào))加入到容器中
另一個(gè)方法為:信號(hào)函數(shù):通知事件函數(shù)執(zhí)行邏輯:首先遍歷容器中,有沒有感興趣的事件ID,如果有,則代表一系列的觀察者,對(duì)這個(gè)事件感興趣,那么再次遍歷觀察者列表,讓每一個(gè)觀察者執(zhí)行相應(yīng)的槽函數(shù)
#include#include
知識(shí)小百科
this指針:
- 是本對(duì)象的起始地址,用
const
修飾的常地址(原型:stu *const this
)(本文代碼中this的作用) - 是隱藏在成員函數(shù)(非靜態(tài)函數(shù))的最左側(cè)的常變量形參
作用:
- 區(qū)別成員屬性和成員函數(shù)的形參
- 解引用,返回本對(duì)象的地址
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:【c++設(shè)計(jì)模型】之觀察者設(shè)計(jì)模型-創(chuàng)新互聯(lián)
文章網(wǎng)址:
http://weahome.cn/article/djigje.html