旅游包车网站最新模板东莞常平医院网站建设

news/2025/10/7 16:40:35/文章来源:
旅游包车网站最新模板,东莞常平医院网站建设,网页作品集,wordpress如何去掉amp目录 观察者模式#xff08;Observer Pattern#xff09; 实际应用 股票价格监控系统 发布-订阅系统 总结 观察者模式#xff08;Observer Pattern#xff09; 观察者模式是一种行为型设计模式#xff0c;它定义了对象间的一对多依赖关系。当一个对象的状态发生改变…目录 观察者模式Observer Pattern 实际应用 股票价格监控系统 发布-订阅系统 总结 观察者模式Observer Pattern 观察者模式是一种行为型设计模式它定义了对象间的一对多依赖关系。当一个对象的状态发生改变时所有依赖于它的对象都会得到通知并自动更新。观察者模式主要包含以下角色 1. Subject主题保存对观察者的引用并提供注册和注销观察者的方法。 2. Observer观察者定义一个更新接口用于接收主题的通知。 3. ConcreteSubject具体主题具体实现主题维护其状态并在状态改变时通知观察者。 4. ConcreteObserver具体观察者具体实现观察者响应主题的通知并进行相应的更新。 实际应用 股票价格监控系统 -- 实现一个股票价格监控系统当股票价格发生变化时所有注册的观察者例如投资者都会收到通知。 #include iostream #include vector #include string #include memory// 观察者接口 class Observer { public:virtual void update(const std::string stockName, float price) 0; };// 主题接口 class Subject { public:virtual void registerObserver(std::shared_ptrObserver observer) 0;virtual void removeObserver(std::shared_ptrObserver observer) 0;virtual void notifyObservers() 0; };// 具体主题 class Stock : public Subject { private:std::string name;float price;std::vectorstd::shared_ptrObserver observers;public:Stock(const std::string name, float price) : name(name), price(price) {}void setPrice(float newPrice) {price newPrice;notifyObservers();}float getPrice() const {return price;}void registerObserver(std::shared_ptrObserver observer) override {observers.push_back(observer);}void removeObserver(std::shared_ptrObserver observer) override {observers.erase(std::remove(observers.begin(), observers.end(), observer), observers.end());}void notifyObservers() override {for (auto observer : observers) {observer-update(name, price);}} };// 具体观察者 class Investor : public Observer { private:std::string name;public:Investor(const std::string name) : name(name) {}void update(const std::string stockName, float price) override {std::cout Investor name is notified that stockName price changed to price std::endl;} };// 客户端代码 int main() {auto stock std::make_sharedStock(AAPL, 150.0);auto investor1 std::make_sharedInvestor(Alice);auto investor2 std::make_sharedInvestor(Bob);stock-registerObserver(investor1);stock-registerObserver(investor2);stock-setPrice(155.0);stock-setPrice(160.0);stock-removeObserver(investor1);stock-setPrice(165.0);return 0; }发布-订阅系统 -- 实现一个简单的发布-订阅系统当发布者发布新消息时所有订阅者都会收到通知。 #include iostream #include vector #include string #include memory// 观察者接口 class Subscriber { public:virtual void update(const std::string message) 0; };// 主题接口 class Publisher { public:virtual void registerSubscriber(std::shared_ptrSubscriber subscriber) 0;virtual void removeSubscriber(std::shared_ptrSubscriber subscriber) 0;virtual void notifySubscribers() 0; };// 具体主题 class NewsPublisher : public Publisher { private:std::string latestNews;std::vectorstd::shared_ptrSubscriber subscribers;public:void publishNews(const std::string news) {latestNews news;notifySubscribers();}void registerSubscriber(std::shared_ptrSubscriber subscriber) override {subscribers.push_back(subscriber);}void removeSubscriber(std::shared_ptrSubscriber subscriber) override {subscribers.erase(std::remove(subscribers.begin(), subscribers.end(), subscriber), subscribers.end());}void notifySubscribers() override {for (auto subscriber : subscribers) {subscriber-update(latestNews);}} };// 具体观察者 class ConcreteSubscriber : public Subscriber { private:std::string name;public:ConcreteSubscriber(const std::string name) : name(name) {}void update(const std::string message) override {std::cout Subscriber name received: message std::endl;} };// 客户端代码 int main() {auto publisher std::make_sharedNewsPublisher();auto subscriber1 std::make_sharedConcreteSubscriber(Alice);auto subscriber2 std::make_sharedConcreteSubscriber(Bob);publisher-registerSubscriber(subscriber1);publisher-registerSubscriber(subscriber2);publisher-publishNews(Breaking News: Observer Pattern in Action!);publisher-publishNews(Latest Update: New Design Patterns Discovered!);publisher-removeSubscriber(subscriber1);publisher-publishNews(Exclusive: Observer Pattern Simplified!);return 0; }总结 观察者模式帮助我们定义了对象间的一对多依赖关系使得对象之间的通信变得更加灵活和可扩展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多Agent协作入门:基于A2A协议的Agent通信

本文介绍了A2A的基本概念以及和MCP的关系,然后通过一个Hello World案例介绍了如何快速开始一个A2A Demo,相信我们可以有一个快速的感性认识。大家好,我是Edison。 之前我们学习了Semantic Kernel中的一些常见的编排…

完整教程:nav2笔记-250603

完整教程:nav2笔记-250603pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

MCP gateway

Top 5 MCP Gateways of 2025 https://www.truefoundry.com/blog/best-mcp-gateways Real-world deployment data reveals significant differences between marketing claims and production performance. Based on te…

点云的遮挡剔除

点云的遮挡剔除点云的遮挡剔除

在线视频下载网站如何做泸州大浪科技做网站

https://www.lucidchart.com/pages/signup?utm_expid39895073-174.qKyHpBEbQS26y86OArD-rQ.1 https://www.processon.com/

English of root for May 30th - 详解

English of root for May 30th - 详解2025-10-07 16:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

门户网站指的是什么个人旅游网站建设方案

核心提示:在普拉纳夫看来,数字信息以像素的形式被限制在显示屏幕之中。他发明的"第六感装置"震惊全场,让世界为之惊叹。 MIT(麻省理工)印度裔学生Prarnav Mistry的天才发明:“第六感装置” 视频地址:http://v.youku.com…

招商加盟网站开发腾讯竞价广告

来源:未来智能实验室 互联网云脑逐渐清晰,AI与互联网结合引发AI威胁论 从科学史可以看到这样一个规律:每一次人类社会的重大技术变革都会导致新领域的科学革命。互联网革命对于人类的影响已经远远超过了大工业革命。与工业革命增强人类的力量…

建设网站河北石家庄的大学

对数据库的各项应用与操作都离不开SQL来对数据进行增删改查。 例如 : 有一张某公司职员信息表如下: 需求1:在公司职员信息表中,请统计各部门,各岗位下的员工人数。 如果这个SQL语句不会写或者不知道怎么操作可以交给…

国内权重网站排名网站备案接入商名称

上次给大家推荐了10个宝藏网站(http://t.csdnimg.cn/qcRWY),这次我又来啦! 话不多说,直接开始! 先收藏,防止以后找不到了! 整理不易,顺便把赞留下吧! 1. 爱…

时尚产品需求预测与库存优化模型解析

本文介绍了一种联合品类规划与库存管理的创新模型,通过马尔可夫链选择模型抽象客户决策过程,解决了时尚产品需求预测中的替代品效应和动态库存规划难题。开发满足多元品味的时尚产品模型 在线零售商持续面临的挑战是…

什么好的设计网站ppt做杂志模板下载网站有哪些

目录 一、使用场景 二、第一种方式:创建具有超时功能且绑定死信交换机的消息队列 三、第二种方式:创建通用延时消息 四、第三种方式:使用rabbitmq的延时队列插件,实现同一个队列中有多个不同超时时间的消息,并按时间…

自制带得分和推荐走法的象棋视频

① 到东萍象棋网可以下载许多棋谱。我用程序下载了1万多个推荐的,grep -v (--invert-match)去掉了和棋的,还有6813个。bash+wget干的,python的连不通(要送user-agent?) pu.txt 6813行,形如:河北金环建设象棋队-…

装修网站是怎么建设的排名检测

刚开始学create table的时候没注意,学到后面发现可以指定默认值。于是写了如下语句: 当我查询的时候发现,查出来的结果是这样的。。 很纳闷有没有,我明明指定默认值了呀,为什么创建出来的表还是空的呢?又跑…

慈溪企业排名网站怎么做点击图片跳转网站

背景 Prompt flow和LangChain都是LLM时代,为高效地构建LLM应用而生。 Prompt flow是Microsoft开源的,其诞生时,LangChain已经很有名气了。 所以作为后生的Prompt flow会为我们带来哪些新的东西呢? ​​​​​​​ Prompt flo…

C++ list数据删除、list资料访问、list反转链表、list数据排序

C++ list数据删除、list资料访问、list反转链表、list数据排序pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

DP分析黑科技——闫氏DP分析法

(前置:没有在百度百科上找到,查了一下这种方法是由英国经济学家埃拉闫提出的(真DP起源于经济学)) 核心思想:从集合角度分析DP问题 在我们遇到的DP问题中,一般都是求在一个有限集内的最值,但是这些方案数量一般…

MUGEN游戏引擎等一系列相关杂谈

MUGEN游戏引擎等一系列相关杂谈也许是个相当没有质量的文章,或者说时定位错了 后面看情况出个整合包之类的吧...... 因此久违的想玩玩格斗游戏了,最好是那种全明星阵容打乱斗的 网上找了找,除了幻想印章,以外还有几…

龙岗网站建设公司河南头条最新消息 新闻

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 Proteus仿真小实验: STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 功能: 硬件组成:STM32F103R6单片机 LCD12864显示器多个按键 1.标准俄罗斯方块经典游戏玩法,带计时&#xff0c…

门户网站的含义做淘宝详情页好的网站

.NET 8 是微软于2021年8月24日宣布的下一代编程语言和框架,它是 .NET 宇宙的一部分,与 C# (Common Language Infrastructure) 紧密集成。.NET 8 引入了许多新功能,如原生编译、值类型 (Value Types)、结构化并发 (structured concurrency) 和…