鬼谷子com资料

本文主要介绍鬼谷子com资料 方法和在新技术下所面对的“挑战”,方便大家深入理解鬼谷子com资料 过程。本文也将分享鬼谷子com资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。

中介者模式

目录
  • 中介者模式
    • 模式定义
    • 模式动机
    • UML类图
    • 源码实现
    • 优点
    • 缺点

模式定义

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

模式动机

  • 尽管讲一个系统分割成许多对象通常可以增加其可复用性,但是对象间相互连接的激增又会降低其可复用性了。大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改动就十分困难了
  • 中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合,以及想定制以一个分布在多个类中的行为,而又不想生成太多的子类的场合。

UML类图

鬼谷子com

源码实现

  • colleague.h
#include <string>  class Mediator; class Colleague { public:     Colleague(Mediator* mediator);     virtual ~Colleague();     virtual void Notify(std::string message) = 0;     void Send(std::string message);  private:     Mediator*       m_Mediator; }; 
  • concretecolleague.h
#include "colleague.h"  class Mediator; class ConcreteColleague1 : public Colleague { public:     ConcreteColleague1(Mediator* mediator);     void Notify(std::string message) override;  private:     Mediator*       m_Mediator; }; 
  • concretecolleague.cpp
#include "colleague.h"  class Mediator; class ConcreteColleague1 : public Colleague { public:     ConcreteColleague1(Mediator* mediator);     void Notify(std::string message) override;  private:     Mediator*       m_Mediator; }; 
  • mediator.h
#include <string> class Colleague; class Mediator { public:     Mediator();     void Send(std::string message, Colleague* colleague);      void SetColleague1(Colleague* colleague);     void SetColleague2(Colleague* colleague); private:     Colleague*      m_Colleague1;     Colleague*      m_Colleague2; }; 
  • mediator.cpp
#include <string> class Colleague; class Mediator { public:     Mediator();     void Send(std::string message, Colleague* colleague);      void SetColleague1(Colleague* colleague);     void SetColleague2(Colleague* colleague); private:     Colleague*      m_Colleague1;     Colleague*      m_Colleague2; }; 
  • main.cpp
#include <iostream> #include "concretecolleague1.h" #include "concretecolleague2.h" #include "mediator.h"  using namespace std;  int main() {     Mediator* mediator = new Mediator();      Colleague* c1 = new ConcreteColleague1(mediator);     Colleague* c2 = new ConcreteColleague2(mediator);      mediator->SetColleague1(c1);     mediator->SetColleague2(c2);      c1->Send("吃了吗");     c2->Send("我吃过了,你呢");     return 0; } 
  • 运行结果

同事2得到消息:吃了吗

同事1得到消息:我吃过了,你呢

优点

中介者模式的优点

  • 中介者模式很容易在系统中应用,也很容易在系统中应用。当系统出现了“多对多”交互复杂的对象群时,不要急于使用中介者模式,而要先烦死你的系统在设计上是不是合理。
  • Mediator的出现减少了各个Colleague的耦合,使得可以独立的改变和复用各个Colleague类和Mediator。由于把对象如何协作进行了抽象,将中介作为一个独立的概念并将其封装在一个对象中,这样
    鬼谷子com资料部分资料来自网络,侵权毕设源码联系删除
区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 鬼谷子com资料

提供最优质的资源集合

立即查看 了解详情