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

一般来说,只有对于那种同事类之间是网状结构的关系,才会考虑使用中介者模式。可以将网状结构变为星状结构,使同事类之间的关系变的清晰一些。

class Mediator
{
public:Mediator(){}~Mediator(){}virtual void Notify() = 0;
};class Colleague
{
public:Colleague(Mediator* mediator){this->mediator = mediator;}virtual ~Colleague(){}protected:Mediator* mediator;
};class ColleagueProvidor: public Colleague
{
public:ColleagueProvidor(Mediator* mediator): Colleague(mediator){}~ColleagueProvidor(){}void ChangeProvidor(){cout<<"ColleagueProvidor::ChangeProvidor()"<<endl;mediator->Notify();}
};class ColleagueConsumer: public Colleague
{
public:ColleagueConsumer(Mediator* mediator): Colleague(mediator){}~ColleagueConsumer(){}void ChangeConsumer(){cout<<"ColleagueConsumer::ChangeConsumer()"<<endl;}
};class ConcreteMediator: public Mediator
{
public:ConcreteMediator(){}~ConcreteMediator(){}void Introduce(ColleagueProvidor* providor, ColleagueConsumer* consumer){this->providor = providor;this->consumer = consumer;}void Notify(){consumer->ChangeConsumer();}private:ColleagueProvidor* providor;ColleagueConsumer* consumer;
};

转载于:https://www.cnblogs.com/lianghuiwen/archive/2013/05/05/3061906.html

设计模式 - Mediator相关推荐

  1. 设计模式——Mediator(中介者)模式

    目录 前言 1 定义 2 适用性 3 结构 3.1 结构图 3.2 参与者 4 应用举例--以房产中介为例 4.1 Mediator--HouseMediator 4.2 具体Mediator--Be ...

  2. 设计模式 -- 中介者设计模式 (Mediator Pattern)

    中介者模式的定义:将多对多关系分散为一对多的关系,将网状结构变成星状结构,降低复杂度,提高扩展性. 角色: Mediator :抽象中介者角色,以抽象类的方式实现,生命具体对象,以及抽象方法: Con ...

  3. 中介者模式php,php设计模式 Mediator (中介者模式)

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

  4. C++设计模式-Mediator中介者模式

    Mediator中介者模式 作用:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. UML如下: Colleage抽象同事 ...

  5. 图解设计模式- Mediator 模式

    读书笔记 仅供参考 简述 Mediator 就是 仲裁者(中介者)模式.如果将程序看作许多类作为一个团队进行工作,那么团队的交流过程就是组员向仲裁者报告,仲裁者向组员下达指标,组员之间不再相互询问. ...

  6. Windows Forms(二)

    导读 1.用VS创建一个Windows Forms程序 2.分析上面的程序 3.Mediator pattern(中介者模式) 4.卡UI怎么办--BackgroundWorker组件 用VS创建一个 ...

  7. 视频教程-Unity客户端框架设计PureMVC篇视频课程(上)-Unity3D

    Unity客户端框架设计PureMVC篇视频课程(上) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...

  8. 设计模式之中介者模式(Mediator)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern) 作者:webabcd 介绍 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互 ...

最新文章

  1. 只需三分钟!只需创建一个vuex.js文件,让你马上学会使用Vuex,尽管Vuex是个鸡肋!(扔掉store文件夹和里面的index、getters、actions、mutations等js文件吧!)
  2. 中科院aibench_中科院发布目标追踪数据集,万条视频,150万个边界框 | 快来下载...
  3. 使用promise解决回调地狱_使用Promise 解决回调地狱
  4. ArrayBlockingQueue源码
  5. mysql中更新的命令是,mysql命令总结(陆续更新中)
  6. POJ 3537 Nim游戏
  7. STM32驱动LCD实战
  8. 合并重叠数据combine_first
  9. JSOI2009 BZOJ2257 瓶子和燃料
  10. java下载 文件_Java下载文件的几种方式
  11. 华为A1路由器虚拟服务器,华为a1路由器怎么设置
  12. 【java复习笔记】总目录
  13. 三相PWM整流器Simulink仿真模型,包含SSRF-SPLL锁相环、SPWM调制环节以及电压电流双闭环PI控制器。 10kHz 110AC-350DC。
  14. 绘制鱼骨图,卡壳了,找到了别人的文章,先好好学习理论知识。
  15. 把Colab运行后生成的文件保存到Google drive
  16. 【大数据】大数据平台技术方案及案例
  17. 7-1 计算物体自由下落的距离
  18. 计算机无法识别出cd驱动器,迅捷(FAST)免驱无线网卡插到电脑上无法识别CD驱动器怎么解决?【图解】...
  19. 交换机的主要技术指标
  20. Economics Overview

热门文章

  1. java swing 总结_java实验之swing图形用户界面程序设计及总结
  2. 后端技术:SpringBoot 中实现跨域的5种方式
  3. 数据库优化:8 种常见的SQL错误用法
  4. 说实话,用完Gradle之后,有点嫌弃Maven了。贼好用!
  5. linux内核设计与实现 中文第三版 pdf_大牛推荐的5本 Linux 经典必读书
  6. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...
  7. mysql插入图片数据
  8. Collection 和 Collections区别
  9. 如何编写数据库可视化界面_编写用于数据可视化的替代文本
  10. Spring MVC实现文件下载