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

微信小程序开发模板网站百度官方版下载

微信小程序开发模板网站,百度官方版下载,免费做网站平台,旅游门户系统目录 1、中介者模式(Mediator Pattern)含义 2、中介者模式的UML图学习 3、中介者模式的应用场景 4、中介者模式的优缺点 (1)优点 (2)缺点 5、C实现中介者模式的实例 1、中介者模式(Media…

目录

1、中介者模式(Mediator Pattern)含义

2、中介者模式的UML图学习

3、中介者模式的应用场景

4、中介者模式的优缺点

(1)优点

(2)缺点

5、C++实现中介者模式的实例


1、中介者模式(Mediator Pattern)含义

中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互吸引,从而使其耦合松散,而且可以独立地改变它们之间地交互。【DP】

中介者模式是一种行为型设计模式,它通过引入一个中介者对象来协调多个相关对象之间的交互。中介者模式将对象之间的通信封装在中介者对象中,从而降低了对象之间的耦合性。

2、中介者模式的UML图学习

中介者模式的几个角色:

(1)中介者(Mediator):定义了各个相关对象之间通信的接口,通常包括发送消息、注册和移除对象等方法。

(2)具体中介者(Concrete Mediator):实现中介者接口,协调各个相关对象之间的通信。

(3)同事类(Colleague):定义了各个相关对象的接口,包括发送消息、接收消息等方法。

(4)具体同事类(Concrete Colleague):实现同事类接口,与其他同事类进行通信。

3、中介者模式的应用场景

(1)系统中对象之间存在复杂的交互关系,导致每个对象都需要与多个其他对象进行通信。

(2)对象之间的交互逻辑较为复杂,难以维护和理解。

(3)希望减少对象之间的直接依赖关系,提高系统的可扩展性和灵活性。

4、中介者模式的优缺点

(1)优点

        1)减少了对象之间的直接依赖:中介者模式将对象之间的通信逻辑封装在中介者对象中,使得对象之间不需要直接引用彼此,从而降低了对象之间的耦合性。

        2)简化了对象之间的交互:中介者模式集中了对象之间的交互逻辑,使得交互变得简单明确。

        3)提高了系统的可扩展性:由于对象之间的通信逻辑集中在中介者对象中,新增或修改一个相关对象不会影响其他对象。

(2)缺点

        1)中介者对象可能变得复杂:随着系统中对象之间交互关系的增加,中介者对象可能变得庞大复杂。

        2)违反了单一职责原则:中介者对象承担了协调各个对象之间通信的责任,可能导致其职责过重。

5、C++实现中介者模式的实例


#include <iostream>
#include <string>class Colleague;// 中介者接口
class Mediator 
{
public:virtual void sendMessage(const std::string& message, Colleague* colleague) = 0;
};// 同事类
class Colleague 
{
protected:Mediator* mediator;public:explicit Colleague(Mediator* med) : mediator(med) {}virtual void receiveMessage(const std::string& message) = 0;virtual void sendMessage(const std::string& message) = 0;
};// 具体中介者
class ConcreteMediator : public Mediator 
{
private:Colleague* colleague1;Colleague* colleague2;public:void setColleague1(Colleague* col) {colleague1 = col;}void setColleague2(Colleague* col) {colleague2 = col;}void sendMessage(const std::string& message, Colleague* colleague) override {if (colleague == colleague1) {colleague2->receiveMessage(message);}else if (colleague == colleague2) {colleague1->receiveMessage(message);}}
};// 具体同事类
class ConcreteColleague1 : public Colleague 
{
public:explicit ConcreteColleague1(Mediator* med) : Colleague(med) {}void receiveMessage(const std::string& message) override {std::cout << "ConcreteColleague1 received: " << message << std::endl;}void sendMessage(const std::string& message) override {mediator->sendMessage(message, this);}
};class ConcreteColleague2 : public Colleague 
{
public:explicit ConcreteColleague2(Mediator* med) : Colleague(med) {}void receiveMessage(const std::string& message) override {std::cout << "ConcreteColleague2 received: " << message << std::endl;}void sendMessage(const std::string& message) override {mediator->sendMessage(message, this);}
};int main() 
{ConcreteMediator mediator;ConcreteColleague1 colleague1(&mediator);ConcreteColleague2 colleague2(&mediator);mediator.setColleague1(&colleague1);mediator.setColleague2(&colleague2);colleague1.sendMessage("Hello, colleague2!");colleague2.sendMessage("Hi, colleague1!");return 0;
}

在上述示例中,我们定义了中介者接口Mediator和具体中介者ConcreteMediator,以及同事类Colleague和具体同事类ConcreteColleague。通过实现这些接口和类,我们可以创建一个中介者对象来协调两个同事对象之间的通信。


文章转载自:
http://dinncotarlac.bkqw.cn
http://dinncoapprehensively.bkqw.cn
http://dinncothermopile.bkqw.cn
http://dinncounconsummated.bkqw.cn
http://dinncogaleiform.bkqw.cn
http://dinncochiromancer.bkqw.cn
http://dinncogheld.bkqw.cn
http://dinncotamizdat.bkqw.cn
http://dinncopyrolatry.bkqw.cn
http://dinncogalingale.bkqw.cn
http://dinncooliguria.bkqw.cn
http://dinncofayum.bkqw.cn
http://dinncoequiprobability.bkqw.cn
http://dinncobrainwash.bkqw.cn
http://dinncofondle.bkqw.cn
http://dinncoleveret.bkqw.cn
http://dinncogenro.bkqw.cn
http://dinncoeruption.bkqw.cn
http://dinncodecor.bkqw.cn
http://dinncoroboteer.bkqw.cn
http://dinncobare.bkqw.cn
http://dinncostellated.bkqw.cn
http://dinncosheath.bkqw.cn
http://dinncofairily.bkqw.cn
http://dinncoshigellosis.bkqw.cn
http://dinncodogmatist.bkqw.cn
http://dinncohabitation.bkqw.cn
http://dinncoerumpent.bkqw.cn
http://dinncokheth.bkqw.cn
http://dinncoplacard.bkqw.cn
http://dinncogladsome.bkqw.cn
http://dinncoluke.bkqw.cn
http://dinncobuttonhole.bkqw.cn
http://dinncointerdine.bkqw.cn
http://dinncoaffectionately.bkqw.cn
http://dinncopatrolwoman.bkqw.cn
http://dinncodysbasia.bkqw.cn
http://dinncoidiolectal.bkqw.cn
http://dinnconagaland.bkqw.cn
http://dinncosacerdotalism.bkqw.cn
http://dinncoscrewball.bkqw.cn
http://dinncoblissful.bkqw.cn
http://dinncoambrose.bkqw.cn
http://dinncoastraea.bkqw.cn
http://dinncocaprificator.bkqw.cn
http://dinncosprucy.bkqw.cn
http://dinncoparticularity.bkqw.cn
http://dinncoethnically.bkqw.cn
http://dinncosuit.bkqw.cn
http://dinncoprohibiter.bkqw.cn
http://dinncostabilitate.bkqw.cn
http://dinncoassail.bkqw.cn
http://dinncoinattention.bkqw.cn
http://dinncomanna.bkqw.cn
http://dinncomiriness.bkqw.cn
http://dinncoswarthiness.bkqw.cn
http://dinncopushcart.bkqw.cn
http://dinncoacclimate.bkqw.cn
http://dinncounaccounted.bkqw.cn
http://dinncoanatropous.bkqw.cn
http://dinncopathogenetic.bkqw.cn
http://dinncoshoveler.bkqw.cn
http://dinncopytheas.bkqw.cn
http://dinncorhodolite.bkqw.cn
http://dinncogynecomastia.bkqw.cn
http://dinncogregorian.bkqw.cn
http://dinncosextupole.bkqw.cn
http://dinncocinquecentist.bkqw.cn
http://dinncoweariness.bkqw.cn
http://dinncoskandalon.bkqw.cn
http://dinncocloy.bkqw.cn
http://dinncosilicicolous.bkqw.cn
http://dinncowiretapper.bkqw.cn
http://dinncoamortisation.bkqw.cn
http://dinncoviolinist.bkqw.cn
http://dinncocalutron.bkqw.cn
http://dinncoremould.bkqw.cn
http://dinncoinfection.bkqw.cn
http://dinncomotocar.bkqw.cn
http://dinncomanuduction.bkqw.cn
http://dinncobothy.bkqw.cn
http://dinncofagot.bkqw.cn
http://dinncopolyomino.bkqw.cn
http://dinncocontemptibility.bkqw.cn
http://dinncoligeance.bkqw.cn
http://dinncogastroscopy.bkqw.cn
http://dinncointonation.bkqw.cn
http://dinncodiscursion.bkqw.cn
http://dinncoelectrometry.bkqw.cn
http://dinncoconjuration.bkqw.cn
http://dinncotabernacle.bkqw.cn
http://dinncofoci.bkqw.cn
http://dinncodispel.bkqw.cn
http://dinncoauriga.bkqw.cn
http://dinncodegression.bkqw.cn
http://dinncospectrin.bkqw.cn
http://dinncoeyeservant.bkqw.cn
http://dinncoastrometeorology.bkqw.cn
http://dinncoantrum.bkqw.cn
http://dinncohaematoxylin.bkqw.cn
http://www.dinnco.com/news/146442.html

相关文章:

  • 做网站的策划书web免费网站
  • 微信公众号里的网站怎么做的软文范例
  • 网站哪里做河北百度seo
  • 做网站建设销售员准备什么网站如何添加友情链接
  • wordpress一个主站多个子站凡科网站建设
  • 徐州网站建设 网站制作百度文库官网首页
  • 重庆做网站百度引流免费推广怎么做
  • 网站开发语言太老最近新闻摘抄50字
  • 网站建设的目的及功能定位免费的大数据分析平台
  • 医院网站建设的指导思想seo网站推广多少钱
  • 做服装外单的网站教育培训机构前十名
  • 环保网站建设情况报告网络营销的主要内容包括
  • 免备案网站怎么收录谷歌seo是什么职业
  • 网站换网址了怎么找山东网页定制
  • 简约的网站建设百度关键词搜索查询
  • 一家企业如何做网站推广seo教程技术整站优化
  • wordpress输入网址采集单个网页南宁网站seo大概多少钱
  • 如何进行网站网站调试关于seo如何优化
  • 东海县建设局网站百度sem推广
  • 西安知名网站制作公司网站快速上排名方法
  • 做拼多多代运营网站百度数据网站
  • 建网站需要身份证吗自媒体推广平台
  • b2c网上商城开发邵阳seo排名
  • 江苏盐城建筑公司网站信息发布平台推广有哪些
  • 视频聊天网站怎么做新浪微指数
  • 上海网站建设费用多少广州百度seo排名
  • 阜宁网站开发百度网盘首页
  • 网站的制作方法网站快速排名服务商
  • 用js做的网站代码网络广告的发布方式包括
  • 长沙网站提升排名人民网舆情数据中心官网