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

做免费网站教程国vs网站 改版 建议

做免费网站教程国vs,网站 改版 建议,建站之星怎么收费,设计兼职网站有哪些在中介者模式中&#xff0c;中介者对象负责协调多个对象之间的交互&#xff0c;将对象之间的耦合度降低。 #include <iostream> #include <string> #include <vector>class Colleague;// 中介者接口 class Mediator { public:virtual void sendMessage(Coll…

在中介者模式中,中介者对象负责协调多个对象之间的交互,将对象之间的耦合度降低。

#include <iostream>
#include <string>
#include <vector>class Colleague;// 中介者接口
class Mediator
{
public:virtual void sendMessage(Colleague *sender, const std::string &message) = 0;
};// 同事类
class Colleague
{
protected:Mediator *mediator;std::string name;public:Colleague(Mediator *mediator, const std::string &name) : mediator(mediator), name(name) {}virtual void receiveMessage(const std::string &message) = 0;virtual void sendMessage(const std::string &message) = 0;
};// 具体同事类A
class ConcreteColleagueA : public Colleague
{
public:ConcreteColleagueA(Mediator *mediator, const std::string &name) : Colleague(mediator, name) {}void receiveMessage(const std::string &message) override{std::cout << "ConcreteColleagueA " << name << " received message: " << message << std::endl;}void sendMessage(const std::string &message) override{mediator->sendMessage(this, message);}
};// 具体同事类B
class ConcreteColleagueB : public Colleague
{
public:ConcreteColleagueB(Mediator *mediator, const std::string &name) : Colleague(mediator, name) {}void receiveMessage(const std::string &message) override{std::cout << "ConcreteColleagueB " << name << " received message: " << message << std::endl;}void sendMessage(const std::string &message) override{mediator->sendMessage(this, message);}
};// 具体中介者类
class ConcreteMediator : public Mediator
{
private:std::vector<Colleague *> colleagues;public:void addColleague(Colleague *colleague){colleagues.push_back(colleague);}void sendMessage(Colleague *sender, const std::string &message) override{for (Colleague *colleague : colleagues){if (colleague != sender){colleague->receiveMessage(message);}}}
};int main()
{ConcreteMediator mediator;ConcreteColleagueA colleagueA(&mediator, "A");ConcreteColleagueB colleagueB(&mediator, "B");mediator.addColleague(&colleagueA);mediator.addColleague(&colleagueB);colleagueA.sendMessage("Hello from A");colleagueB.sendMessage("Hi from B");return 0;
}

运行结果:

ConcreteColleagueB B received message: Hello from A
ConcreteColleagueA A received message: Hi from B

在上述代码中,Mediator是中介者接口,定义了发送消息的方法。Colleague是同事类,定义了接收消息和发送消息的方法。ConcreteColleagueA和ConcreteColleagueB是具体的同事类,实现了同事接口。ConcreteMediator是具体的中介者类,实现了中介者接口,并维护了同事对象的列表。在main函数中,我们创建了中介者对象和两个具体同事对象,并将同事对象添加到中介者中。然后,同事对象可以通过中介者来发送消息,并且中介者会将消息传递给其他同事对象。输出结果将显示同事对象之间的交互。

http://www.15wanjia.com/news/179170.html

相关文章:

  • 建设网站语言选择巢湖城市建设投资有限公司网站
  • 招投标网站官网广州app开发网站建设
  • .net建网站的优势360竞价推广
  • 为网站做一则广告语wordpress网站打开很慢
  • 神农架网站制作游戏网站的建设
  • 简述网站建设的步骤做网站没有成本的方法
  • 海南建设大厅网站企业网站建设网站模板
  • 校园网站建设可行性分析联通企业专线做网站
  • 西安 北郊网站建设wordpress大不了
  • 企业网站样式网站开发到上线 多久
  • 怎么做企业网站平台宜昌恒大帝景地址
  • 企业网站建设admin商机创业网2021创业
  • 使用ai做网站设计企业网站快速优化排名
  • 平台网站如何做推广怎么去营销自己的产品
  • 做知乎网站的图片cn域名与com域名
  • 网站建设和后台空间管理关系网站建设花销
  • 大连企业网站设计搜狗快速收录方法
  • .net美食网站开发源代码可以做积分的网站
  • 瑞安网站建设优化企业qq网页版
  • 有什么正规的网站做代加工凡科电脑版登录首页
  • 东莞网站忧化什么网站是php
  • 网站首页做很多个关键词wordpress 自动采集发布
  • 襄阳网站建设网页设计重要是什么
  • 建设个人博客网站广州番禺发布
  • 漳浦网站开发优化关键词规则
  • 南通网站排名外包dede仿手机网站模板
  • 嘉兴建设工程造价信息网站各大网站免费观看
  • 企业网站免费建站程序大数据培训哪家好
  • 摄影网站导航网站开发2008
  • 做海报哪个网站的素材多使用docker部署wordpress