设计模式初探-中介者模式
来源:互联网 发布:苹果6s怎么设置4g网络 编辑:程序博客网 时间:2024/06/05 09:33
中介者模式(MEDIATOR),又称调停者模式,通过使用一个中介者对象来封装一系列的对象交互,属于对象行为型模式。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。现实生活中,到处充斥着中介者模式的身影。上到庄严的法院,下到为程序员带来福音的婚姻介绍所或交友平台,还有可恶的房产中介,都是中介者模式的体现。比如,你参加一个相亲活动,20多对男女如饥似渴地寻找着自己的另一半。如果不是一见钟情,你就需要了解20多个女生,不排除男生的话,就是40多个人的喜好,性格是否符合自己,这简直就是灾难!如果相亲活动举办地比较符合人情,有个官方的媒婆,她负责将20多对男女根据彼此的喜好,性格进行配对,这样就减少了相亲者之间的耦合关系,节省相亲者们的时间和精力,此乃中介者模式之妙用也。
一、使用场景
1、一组对象以定义良好但是复杂的方式进行通信,比如网络状的结构,这样产生的相互依赖关系结构混乱且难以理解。可以使用中介者模式对复杂依赖关系进行改造,以获取更好的灵活性。
2、一个对象引用其他很多对象并且直接与这些对象通信,导致该对象难以复用。中介者模式将对象的相互依赖关系转换为中介者和对象的依赖关系,使对象能够灵活复用。
3、想定制一个分布在多个类中的行为,而又不想生成太多的子类。
二、UML图
三、Java实现
运行结果:四、模式优缺点
优点:
1、减少了子类的生成。中介者Mediator将原本分布于多个对象间的行为集中在一起。改变这些行为只需生成Mediator的子类即可,这样各个同事类(Colleague类)可被重用。
2、将各Colleague解耦。Mediator有利于各Colleague间的松耦合,你可以独立的改变和复用各Colleague和Mediator类。
3、简化了对象协议。用Mediator和各Colleague间的一对多的交互来代替多对多的交互,使对象关系更易于理解,维护和扩展。
4、对对象如何协作进行了抽象。中介者模式很好的将使用者的注意力从对象各自本身的行为转移到它们之间的交互上。
5、使控制集中化。中介者模式将交互的复杂性变为中介者的复杂性。
缺点:
1、由于中介者模式将控制集中到中介者身上,可能会导致中介者过于复杂而难于维护。
- 设计模式初探-中介者模式
- 设计模式初探-中介者模式
- 【设计模式】中介者
- 中介者设计模式
- 设计模式-中介者
- 设计模式-中介者
- [设计]中介者模式
- 设计模式 中介者模式
- 设计模式-中介者模式
- 设计模式 - 中介者模式
- 设计模式-中介者模式
- 设计模式:中介者模式
- 设计模式--中介者模式
- 设计模式-中介者模式
- 设计模式--中介者模式
- 设计模式-中介者模式
- 设计模式-中介者模式
- 设计模式-中介者模式
- HTML笔记-2
- Java的纤程库
- 三分钟开启第一个 Kotlin 工程
- 浅谈家用路由器安全变迁
- C++用双链表检测回文数(palindrome number)
- 设计模式初探-中介者模式
- C++类中变量也可以是引用哈------要用初始化列表来初始化
- hdu 6050 Funny Function
- HDU6070 Dirt Ratio(线段树+二分)
- POJ 3255(次短路+SPFA)
- mybatis generator插件自定义修改
- 安卓代码中常用的代码以及问题收集
- hdu 6060 RXD and dividing (dfs)
- 机器学习(1)-分类