【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

中介者模式,听上去有一点陌生。但是,只要我给朋友们打个比方就明白了。早先自由恋爱没有现在那么普遍的时候,男女之间的相识还是需要通过媒婆之间才能相互认识。男孩对女方有什么要求,可以通过媒婆向女方提出来;当然,女方有什么要求也可以通过媒婆向男方提出来。所以,中介者模式在我看来,就是媒婆模式。

typedef struct _Mediator
{People* man;People* woman;
}Mediator;

上面的数据结构是给媒婆的,那么当然还有一个数据结构是给男方、女方的。

typedef struct _People
{Mediator* pMediator;void (*request)(struct _People* pPeople);void (*process)(struct _Peoplle* pPeople);
}People;

所以,这里我们看到的如果是男方的要求,那么这个要求应该女方去处理啊,怎么处理呢?

void man_request(struct _People* pPeople)
{assert(NULL != pPeople);pPeople->pMediator->woman->process(pPeople->pMediator->woman);
}

上面做的是男方向女方提出的要求,所以女方也可以向男方提要求了。毕竟男女平等嘛。

void woman_request(struct _People* pPeople)
{assert(NULL != pPeople);pPeople->pMediator->man->process(pPeople->pMediator->man);
}

C语言和设计模式(中介者模式)相关推荐

  1. 设计模式中介者模式-备忘录模式-状态模式

    设计模式 中介者模式 基本介绍 中介者模式使用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 中介者模式属于行为模式,使 ...

  2. Python设计模式-中介者模式

    Python设计模式-中介者模式 代码基于3.5.2,代码如下; #coding:utf-8 #中介者模式class colleague():mediator = Nonedef __init__(s ...

  3. 7. 星际争霸之php设计模式--中介者模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  4. 【设计模式】Java设计模式 - 中介者模式

    Java设计模式 - 中介者模式

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

    设计模式-中介者模式(Mediator Pattern) 文章目录 设计模式-中介者模式(Mediator Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.总 ...

  6. [设计模式] - 中介者模式

    文章目录 一.中介者模式简介 1. 什么是中介者模式 2. 业务说明 3. 不使用中介者模式的代码实现 二.中介者模式的实现 1. 设计思路 2. 代码实现 三.中介者模式总结 1. 中介者模式的特点 ...

  7. 大话设计模式—中介者模式

    中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为型模式. ...

  8. [设计模式]中介者模式之Events消息传递实现

    这篇文章比较短,修改自 写给大家看的设计模式之中介者中的例子 中介者模式的定义和目的自不必说, 参考上文即可. 本文针对实现方式做一个补充. 中介者模式增加了一个第三方对象(中介者)来控制两个对象(同 ...

  9. C++设计模式-中介者模式

    目录 基本概念 代码与实例 基本概念 中介者模式(Mediator)用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的关系. 下面 ...

  10. 学习设计模式 - 中介者模式

    中介者模式 一丶定义 定义一个中介者对象, 封装一系列对象的交互关系, 使得各对象不必显示的相互引用, 从而使其耦合松散, 而且可以独立的改变它们的交互 二丶理解 各对象显式地持有对方引用, 用于对象 ...

最新文章

  1. 不用任何程序就可锁住和隐藏你的文件
  2. EF 4.1中内部经常提交的 exec sp_reset_connection 的用途原来是为了重用池中的连接...
  3. 汇编语言--CPU对外设的控制
  4. vue ...mapMutations 的第一个参数默认为 数据对象state
  5. 区块链学堂(7):Geth 搭建私有网络-实战
  6. Graphpad Prism 9绘制子列图与柱状图
  7. 分区供水条件口诀_经典口诀2020年一建市政管道篇
  8. [mybatis]映射文件_参数处理_#取值时指定参数相关规则
  9. 四年级学生计算机学情分析报告,四年级学情分析
  10. linux 磁盘检测卡主_在Windows和Linux中找出磁盘分区使用的文件系统,就是这么简单...
  11. PHP培训领航者兄弟连IT教育推出兄弟会教育模式
  12. [硬件基础]开关电源和线性稳压器的优缺点?
  13. decorview、window、dialog关系详解
  14. 读书记录|《所罗门王的指环》
  15. #二、股价和时间转换(江恩箱)
  16. matlab dff求导,matlab的多元函数微积分学.ppt
  17. 想要健康, 先了解BMI与体脂肪的关係
  18. Algorithm保姆级笔记(基础+提高+Top1+杂题+Top2+蓝桥杯)
  19. ETL工程师系列课程_Oracle数据库
  20. Linux/Centos安装oracle11超详细图文教程

热门文章

  1. Magicodes.Admin.Core开源框架总体介绍
  2. 线性代数与矩阵论 习题 1.2.1
  3. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月17日-9月23日)
  4. springboot整合nacos配置实现实时更新
  5. AcWing 795. 前缀和
  6. VGA接口一根针折了
  7. Docker 安装、镜像、dockerfile、容器、仓库
  8. mini 打开窗口提交表单,按钮在页脚
  9. 将指定内容写入目标文件(日志)
  10. java基础语法(二)--单列模式