码迷,mamicode.com
首页 > 其他好文 > 详细

中介者模式(Mediator)

时间:2016-08-07 18:45:09      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

1.定义

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

2.结构

Mediator:中介者接口。在里面定义各个同事之间交互需要的方法,可以是公共的通信方法

ConcreteMediator:具体中介者实现对象。它负责了解并维护各个同事对象,并负责具体的协调各同事对象的交互关系

Colleague:同事类的定义,通常实现为抽象类,主要负责约束同事对象的类型,并实现一些具体同事类之间的公共方法。

ConcreteColleague: 具体的同事类,实现自己的业务,在需要与其他同事通信的时候,就与持有的中介者通信,中介者会负责与其他的同事交互。

coding...

3. 广义中介者

是否有必要为同事对象定义一个公共的父类?

同事类有必要持有中介者对象吗?

是否需要中介者接口?

中介者对象是否需要持有所有的同事?

中介者对象只是提供一个公共方法来接受同事对象的通知吗?

 

4.本质

封装交互

 

5.选择中介者模式

如果一组对象之间的通信方式比较复杂,导致相互依赖、结构混乱,可以采用中介者模式,把这些对象相互的交互管理起来,各个对象都只需要和中介者交互,从而使各个对象松散耦合,结构也更清晰易懂

如果一个对象引用多个对象,病这几跟这些对象交互,导致难以服用该对象,可以采用中介者模式。

 

6.相关模式

外观模式

观察者模式

 

 

理解

当出现多个业务类相互之间交互的时候,可以考虑中介者模式,一般中介者模式可以考虑实现为单例模式,这样在不同的业务通知时直接调用对应的通知方法即可。例如A写入数据后,通知B写入,B写入数据后,通知C写入,C写入完数据后通知A,把这种相互调用的耦合逻辑全部交给中介者,右中介者去协调实现。

 

中介者模式(Mediator)

标签:

原文地址:http://www.cnblogs.com/zhaojunyang/p/5746745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!