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

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

修改網(wǎng)站描述易觀數(shù)據(jù)app排行

修改網(wǎng)站描述,易觀數(shù)據(jù)app排行,jsp網(wǎng)站開發(fā)關(guān)鍵技術(shù),企業(yè)網(wǎng)站及公眾號(hào)建設(shè)方案文章目錄 行為型模式:觀察者模式 行為型模式:觀察者模式 觀察者模式定義了一種一對(duì)多的依賴關(guān)系:它讓一個(gè)主題(被觀察者)對(duì)象關(guān)聯(lián)多個(gè)觀察者對(duì)象,并且當(dāng)主題對(duì)象的狀態(tài)發(fā)生變化時(shí),它會(huì)主動(dòng)通知…

文章目錄

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

行為型模式:觀察者模式

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

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

#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相等的元素移動(dòng)到容器的末尾,并返回指向第一個(gè)不需要保留的元素的迭代器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();}
};// 觀察者類:手機(jī)顯示器
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)建被觀察者對(duì)象(設(shè)備溫度檢測儀)DeviceTemperatureMonitor tempMonitor;// 創(chuàng)建觀察者對(duì)象(顯示設(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);// 移除一個(gè)觀察者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/62376.html

相關(guān)文章:

  • 網(wǎng)站標(biāo)簽名詞西安seo代運(yùn)營
  • 網(wǎng)站首頁輪播圖怎么換百度開放平臺(tái)登錄
  • 個(gè)人網(wǎng)站需要備案嗎站長工具是什么
  • 網(wǎng)站關(guān)鍵詞指數(shù)查詢seo百度貼吧
  • 中國化學(xué)工程第六建設(shè)公司網(wǎng)站蚌埠seo外包
  • 怎么做頁游網(wǎng)站運(yùn)營1688的網(wǎng)站特色
  • 怎么做購物網(wǎng)站到百度指數(shù)搜索榜
  • 網(wǎng)站開發(fā)需要什么基礎(chǔ)知識(shí)短視頻seo
  • 網(wǎng)站備案號(hào)什么情況下被注銷企業(yè)營銷推廣策劃
  • 佛山專注網(wǎng)站制作細(xì)節(jié)今日國際新聞最新消息十條
  • 加強(qiáng)統(tǒng)籌推進(jìn)政府網(wǎng)站建設(shè)百度云搜索引擎官方入口
  • 專業(yè)做網(wǎng)站上海寫一篇軟文1000字
  • wap網(wǎng)站開發(fā)語言重慶小潘seo
  • 株洲正規(guī)競價(jià)優(yōu)化推薦西安seo技術(shù)培訓(xùn)班
  • 做旅游網(wǎng)站公司百度seo怎么關(guān)閉
  • wordpress修改為中文網(wǎng)站關(guān)鍵詞排名優(yōu)化系統(tǒng)
  • 廈門市建設(shè)工程安全管理協(xié)會(huì)網(wǎng)站廣告推廣平臺(tái)網(wǎng)站有哪些
  • 公司做網(wǎng)站比較好的平臺(tái)培訓(xùn)班報(bào)名
  • 免費(fèi)電視劇網(wǎng)站大全在線觀看優(yōu)化網(wǎng)站制作方法大全
  • 男女做羞羞事網(wǎng)站seo是什么職務(wù)
  • app開發(fā)網(wǎng)站建設(shè)公司哪家好有免費(fèi)做網(wǎng)站的嗎
  • 湖南平臺(tái)網(wǎng)站建設(shè)哪里有關(guān)鍵詞排名seo
  • 宏潤建設(shè)集團(tuán)網(wǎng)站全球網(wǎng)站排名查詢
  • 網(wǎng)站做優(yōu)化按點(diǎn)擊收費(fèi)抖音推廣引流
  • 大同網(wǎng)站建設(shè)設(shè)計(jì)seo排名技術(shù)軟件
  • 接網(wǎng)站開發(fā)的公司合肥網(wǎng)站優(yōu)化搜索
  • 制作 網(wǎng)站導(dǎo)航 下拉菜單今日國際軍事新聞最新消息
  • 做網(wǎng)站 怎么提升瀏覽量seo推廣官網(wǎng)
  • 做網(wǎng)絡(luò)課堂的平臺(tái)有哪些網(wǎng)站鄭州seo推廣外包
  • 運(yùn)動(dòng)網(wǎng)頁設(shè)計(jì)哪里有seo排名優(yōu)化