当前位置: 首页 > news >正文

上海市建设教育网站做网站用小型机或服务器

上海市建设教育网站,做网站用小型机或服务器,国家企业信用公示信息查询平台,关键词优化的发展趋势文章目录 行为型模式#xff1a;观察者模式 行为型模式#xff1a;观察者模式 观察者模式定义了一种一对多的依赖关系#xff1a;它让一个主题#xff08;被观察者#xff09;对象关联多个观察者对象#xff0c;并且当主题对象的状态发生变化时#xff0c;它会主动通知… 文章目录 行为型模式观察者模式 行为型模式观察者模式 观察者模式定义了一种一对多的依赖关系它让一个主题被观察者对象关联多个观察者对象并且当主题对象的状态发生变化时它会主动通知这些观察者对象使它们能够自动更新自己或执行相应的响应操作。 以一个设备的温度显示系统为例在这个示例中温度检测仪是被观察者当设备温度发生变化时它会通知所有的显示器更新温度信息。 #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() {} };// 被观察者类设备温度检测仪 class DeviceTemperatureMonitor : public ISubject { private:std::vectorIObserver* 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);}}// 设置温度状态并通知所有观察者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() {// 创建被观察者对象设备温度检测仪DeviceTemperatureMonitor tempMonitor;// 创建观察者对象显示设备PhoneDisplay phoneDisplay1(iPhone);PhoneDisplay phoneDisplay2(Samsung);WindowDisplay windowDisplay(Office);// 注册观察者tempMonitor.registerObserver(phoneDisplay1);tempMonitor.registerObserver(phoneDisplay2);tempMonitor.registerObserver(windowDisplay);// 模拟温度数据更新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.dnsts.com.cn/news/104750.html

相关文章:

  • 吴中seo网站优化软件孝感网页设计
  • 对比的网站建设汕头模版网站建设
  • delphi7网站开发嘉兴市住房和城乡建设局门户网站
  • 安徽建设厅网站节能北备案建设网站需要提供什么资料
  • 怎么在互联网做网站wordpress ie兼容
  • 泰州市住房和城乡建设局网站深圳网站设计公司哪家工艺好
  • 网站搜索 收录优化行业网站营销特点
  • 申请一个网站需要多少钱唐山公司网站建设
  • seo站长助手眼镜 商城 网站建设
  • 九龙坡网站建设多少钱切片工具做网站怎么做
  • 夏津网站建设公司【网站建设
  • 邯郸市城乡住房建设局网站无锡网站推广优化费用
  • 如何在国外网站做推广中国企业排名
  • 鞍山市网站建设wordpress先生
  • 自己怎么设计公主房郑州百度快照优化
  • 公司网站建设建设鸿基建设工程有限公司网站
  • 青岛网站建设设计公司如何做医美机构网站观察分析
  • 网站安全软件外贸有哪些网站
  • dede 两个网站图片路径怎么做招聘有哪些网站
  • 网站建设网点重庆铜梁网站建设
  • 新网站建设ppt网站被k什么意思
  • 网站admin后台界面模板网络推广网络营销和网站推广的区别
  • 天津 网站优化邯郸网站建设信息
  • php做网站安全渗透网站做seo
  • 哪个网站做调查赚钱多前端开发培训机构推荐
  • 如何用手机建立网站wordpress主页底端添加图片
  • 西宁做腋臭北大网站Ywordpress安装完无法登录
  • yandex网站推广网站建设中企动力公司
  • 青岛高新区建设局网站wordpress视频格式
  • 广告设计接单网站四川建设厅证书查询官网