中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳網(wǎng)站建設(shè)服務(wù)商萬創(chuàng)網(wǎng)網(wǎng)站代運營推廣

深圳網(wǎng)站建設(shè)服務(wù)商萬創(chuàng)網(wǎng),網(wǎng)站代運營推廣,swiper wordpress,網(wǎng)站后臺管理系統(tǒng)一般用戶名是什么文章目錄 行為型模式:觀察者模式 行為型模式:觀察者模式 觀察者模式定義了一種一對多的依賴關(guān)系:它讓一個主題(被觀察者)對象關(guān)聯(lián)多個觀察者對象,并且當(dāng)主題對象的狀態(tài)發(fā)生變化時,它會主動通知…

文章目錄

  • 行為型模式:觀察者模式

行為型模式:觀察者模式

觀察者模式定義了一種一對多的依賴關(guān)系:它讓一個主題(被觀察者)對象關(guān)聯(lián)多個觀察者對象,并且當(dāng)主題對象的狀態(tài)發(fā)生變化時,它會主動通知這些觀察者對象,使它們能夠自動更新自己或執(zhí)行相應(yīng)的響應(yīng)操作。

以一個設(shè)備的溫度顯示系統(tǒng)為例,在這個示例中,溫度檢測儀是被觀察者,當(dāng)設(shè)備溫度發(fā)生變化時,它會通知所有的顯示器更新溫度信息。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm> // 觀察者接口
class IObserver {
public:virtual void update(float temperature) = 0;virtual ~IObserver() {}
};// 主題接口(Subject)
class ISubject {
public:virtual void registerObserver(IObserver* observer) = 0;virtual void removeObserver(IObserver* observer) = 0;virtual void notifyObservers() = 0;virtual ~ISubject() {}
};// 被觀察者類:設(shè)備溫度檢測儀
class DeviceTemperatureMonitor : public ISubject {
private:std::vector<IObserver*> observers;float temperature;public:// 注冊觀察者void registerObserver(IObserver* observer) override {observers.push_back(observer);}// 移除觀察者void removeObserver(IObserver* observer) override {// std::remove將所有與指定值observer相等的元素移動到容器的末尾,并返回指向第一個不需要保留的元素的迭代器observers.erase(std::remove(observers.begin(), observers.end(), observer), observers.end());}// 通知所有觀察者void notifyObservers() override {for (IObserver* observer : observers) {observer->update(temperature);}}// 設(shè)置溫度狀態(tài)并通知所有觀察者void setTemperature(float temp) {temperature = temp;notifyObservers();}
};// 觀察者類:手機顯示器
class PhoneDisplay : public IObserver {
private:std::string deviceName;public:PhoneDisplay(const std::string& name) : deviceName(name) {}void update(float temperature) override {std::cout << "Phone Display (" << deviceName << ") - Device Temperature: " << temperature << "°C\n";}
};// 觀察者類:窗口顯示器
class WindowDisplay : public IObserver {
private:std::string location;public:WindowDisplay(const std::string& loc) : location(loc) {}void update(float temperature) override {std::cout << "Window Display at " << location << " - Device Temperature: " << temperature << "°C\n";}
};int main() {// 創(chuàng)建被觀察者對象(設(shè)備溫度檢測儀)DeviceTemperatureMonitor tempMonitor;// 創(chuàng)建觀察者對象(顯示設(shè)備)PhoneDisplay phoneDisplay1("iPhone");PhoneDisplay phoneDisplay2("Samsung");WindowDisplay windowDisplay("Office");// 注冊觀察者tempMonitor.registerObserver(&phoneDisplay1);tempMonitor.registerObserver(&phoneDisplay2);tempMonitor.registerObserver(&windowDisplay);// 模擬溫度數(shù)據(jù)更新std::cout << "Temperature Update 1:\n";tempMonitor.setTemperature(75.0f);std::cout << "\nTemperature Update 2:\n";tempMonitor.setTemperature(80.0f);// 移除一個觀察者tempMonitor.removeObserver(&phoneDisplay2);std::cout << "\nTemperature Update 3 (After removing Samsung Phone Display):\n";tempMonitor.setTemperature(85.0f);return 0;
}
Temperature Update 1:
Phone Display (iPhone) - Device Temperature: 75°C
Phone Display (Samsung) - Device Temperature: 75°C
Window Display at Office - Device Temperature: 75°CTemperature Update 2:
Phone Display (iPhone) - Device Temperature: 80°C
Phone Display (Samsung) - Device Temperature: 80°C
Window Display at Office - Device Temperature: 80°CTemperature Update 3 (After removing Samsung Phone Display):
Phone Display (iPhone) - Device Temperature: 85°C
Window Display at Office - Device Temperature: 85°C
http://www.risenshineclean.com/news/22518.html

相關(guān)文章:

  • 網(wǎng)站建設(shè) 圖標百度快速收錄技術(shù)
  • 西安網(wǎng)站維護深圳網(wǎng)站建設(shè)開發(fā)公司
  • wordpress站點版權(quán)設(shè)置拉新推廣賺錢的app
  • 合肥網(wǎng)站搭建鄭州網(wǎng)絡(luò)推廣代理顧問
  • 城鄉(xiāng)建設(shè)官網(wǎng)說說seo論壇
  • 網(wǎng)站右下角彈窗代碼網(wǎng)絡(luò)營銷方式都有哪些
  • 個人的網(wǎng)站免費網(wǎng)絡(luò)推廣
  • 巴里坤網(wǎng)站建設(shè)seo快速排名培訓(xùn)
  • 各大網(wǎng)站投稿郵箱杭州關(guān)鍵詞優(yōu)化服務(wù)
  • 南京哪家公司做企業(yè)網(wǎng)站 做得比較好吸引客流的25個技巧
  • 網(wǎng)站設(shè)計英文網(wǎng)絡(luò)廣告營銷案例分析
  • 北京做網(wǎng)站公司推薦seo工具軟件
  • 杭州品牌網(wǎng)站設(shè)計seo優(yōu)化什么意思
  • 廣州網(wǎng)站建站青島百度快速優(yōu)化排名
  • 西寧做網(wǎng)站ci君博卻上無錫百度競價推廣
  • 企業(yè)建站業(yè)務(wù)還能做嗎沈陽seo合作
  • 模具 東莞網(wǎng)站建設(shè)長沙網(wǎng)絡(luò)推廣外包費用
  • 手機 網(wǎng)站 微信 源碼河南網(wǎng)站seo
  • 龍巖網(wǎng)站制作長沙網(wǎng)站快速排名提升
  • 只做日本的網(wǎng)站網(wǎng)站域名購買
  • 茄子河區(qū)網(wǎng)站建設(shè)自查報告常用的網(wǎng)絡(luò)推廣方式有哪些
  • 網(wǎng)站如何做用戶的實名認證開發(fā)一個網(wǎng)站的步驟流程
  • 公主墳網(wǎng)站建設(shè)學(xué)電腦辦公軟件培訓(xùn)班
  • 孝義網(wǎng)站開發(fā)公司交友平臺
  • 建立網(wǎng)站項目百度商城購物
  • 小商品批發(fā)網(wǎng)云南網(wǎng)站seo服務(wù)
  • 怎么看網(wǎng)站建設(shè)有多久國外域名注冊
  • 做一個小說閱讀網(wǎng)站怎么做seo關(guān)鍵詞優(yōu)化推廣哪家好
  • 手機網(wǎng)站制作價格百度點擊率排名有效果嗎
  • 長沙定制網(wǎng)站建設(shè)一站式自媒體服務(wù)平臺