设计模式学习篇-mediator中介者模式

本文介绍中介者模式的应用场景及其实质,通过一个公司内部沟通的例子,阐述如何利用中介者模式来减少对象间的直接依赖,提高代码的可复用性和可维护性。

中介者模式 :用一个中介对象来封装一系列的对象交互,中介者使得对象不需要显示的引用,从而使其松耦合,而且可以独立的改变他们的交互。

中介者模式本质:封装交互 。

 

如果一组对象之间的通信方式比较复杂,导致相互依赖,结构混乱;如果一个对象引用了很多对象,并直接与这些对象进行交互,导致难以复用该对象。 可以采用中介者模式。

 

与外观模式相似:外观模式多用于封装一个子系统内部的多个模块,目的是向子系统外部提供简单的API。它封装的是子系统内部与外部系统间交互。而中介者模式提供的是多个平等的同事对象之间交互关系的封装。

 

举例:在一个公司里面,有很多部门、员工(我们统称他们互相为Colleague“同事”),为了完成一定的任务,“同事”之间肯定有许多需要互相配合、交流的过程。如果由各个“同事”频繁地到处去与自己有关的“同事”沟通,这样肯定会形成一个多对多的杂乱的联系网络而造成工作效率低下。
 
此时就需要一位专门的“中介者”给各个“同事”分配任务,以及统一跟进大家的进度并在“同事”之间实时地进行交互,保证“同事”之间必须的沟通交流。很明显我们知道此时的“中介者”担任了沟通“同事”彼此之间的重要角色了,“中介者”使得每个“同事”都变成一对一的联系方式,减轻了每个“同事”的负担,增强工作效率。
 
大概理清上面简单例子中的意图之后,给出中介者模式适用场景:
1、一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。
2、一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
3、想定制一个分布在多个类中的行为,而又不想生成太多的子类
类图附件:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值