一、概念
中介者模式(Mediator Pattern)又被称为调停者模式,是一种对象的行为模式。
它可以将对象间网状的关系,通过中介类转变为星型的关系。
1.1、定义
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
51234549-802B-4599-99BC-ECB7A83CE99E.png
- Mediator,中介者:注册具体的同事类;负责同事类间交互,最为核心的类。
- Colleague,同事类:多个类的通用抽象接口
- ConcreteMediator,具体的中介类
- ConcreteColleague,具体的同事类
注意:中介者的模式是为了 解耦 系统中 很多类间的关联交互而设计,必然有个Mediator
中介者类;然后为了统一众多类的交互,必须设计抽象接口,在这称为同事类Colleague
。
1.2、解决的问题
-
问题分析:系统中的多个类彼此关联相互耦合,形成了网状结构。
中介者_1.png -
中介者的解决思路:将上述网状结构分离为星型结构。
中介者_2.png以上图来自第三方,借用依次说明问题!
二、模式的应用和优缺点
2.1、应用场景
-
实例:虚拟聊天室
某论坛系统欲增加一个虚拟聊天室,允许论坛会员通过该聊天室进行信息交流,普通会员(CommonMember)可以给其他会员发送文本信息,钻石会员(DiamondMember)既可以给其他会员发送文本信息,还可以发送图片信息。该聊天室可以对不雅字符进行过滤,如“日”等字符;还可以对发送的图片大小进行控制。用中介者模式设计该虚拟聊天室。 -
实例:MVC模式
Controller 可以理解为 Model 和 View 的中介者类,Model和View则为同事类。
2.2、优缺点
- 优点:可以使对象之间的关系数量急剧减少。
- 缺点:优点即是缺点,由于交互都封装到 中介者类
Mediator
中,如果类很多、关系特复杂,那么Mediator
将会膨胀。
网友评论