设计模式——Mediator(中介者)模式
·
目录
前言
将一个系统分割为多个对象可以增强复用性,但是对象之间相互连接又会降低复用性。如果使用一个中介对象来改变这总交互关系将增强系统健壮性。
1 定义
Mediator中介者模式:用一个中介对象封装一系列对象的交互过程。中介使各对象不需要显示引用,从而降低了耦合,可以独立的改变它们的交互。
2 适用性
- 一组对象定义良好但是需要复杂的方式进行通信,产生的依赖关系导致结构混乱。
- 一个对象引用其它很多对象,并且直接通信,导致难以复用该对象。
- 想定制一个分布在多个类中的行为,而不想依赖太多子类。
3 结构
3.1 结构图
中介者结构如下:

3.2 参与者
- Mediator:定义一个接口,用于其它Colleague进行通信。
- Colleague:同事接口,与其它同事通信时依靠Mediator进行通信。
- ConcreteMediator:具体中介者,了解并维护各个Colleague,协调它们的通信行为。
4 应用举例——以房产中介为例
4.1 Mediator——HouseMediator
定义如下:

定义一个转发消息方法。
4.2 具体Mediator——BeijingHouseMediato
定义如下:

定义具体转发消息方法,并维护通信的双方。
4.3 Colleague
定义如下:

定义发送和接受消息。
4.4 具体Colleague——ConcreteColleagueOne、ConcreteColleagueTwo
定义类似,以ConcreteColleagueTwo为例:

需要维护一个中介指针,发送消息需要依赖中介进行,接受消息同样依赖中介。
5 总结
该模式通常用于多向的对象协作行为,与Facade模式不同,Facade是对子系统的抽象,协议是单向的,子系统不知道Facade的存在。
参考文献
[1]. 《设计模式》
更多推荐
所有评论(0)