设计模式(十八)中介者模式
一 . 模式动机
- 中介者模式是为了解决系统结构复杂(对象之间存在大量的相互关联和调用),对象可重用性差,系统扩展性低。
二 . 模式定义
- 用一个中介对想来封装一系列对象交互,中介者适用各对象不需要显示的相互引用,从而使其松耦合,并且可以独立的改变他们之间的交互。是一种对象行为模式。
三 . 模式结构
(图片来源于网络)
- Mediator:抽象中介者
- ConcreteMediator:具体中介者
- Colleague:抽象同事类
- ConcreteCollege:具体同事类
四 . 模式实列
- 老师管理一个班的学生并不会把所有学生的qq都加一边,而是建立一个qq群。(这里代码省略)
五 . 模式分析
- 中介者类中要有对所有同事类的引用
六 . 模式优缺点
- 优点
- 简化对象的交互
- 将各个同时类解耦合
- 缺点
- 在具体中介者类中包含了同时之间的交互细节,可能导致具体中介类非常复杂,使系统难以维护
七 . 适用场景和应用
- 系统对象之间存在复杂的引用关系。
八 . 模式扩展
- 中介者模式与迪米特法则
- 在中介者模式中,通过创造出一个中介者对象,将系统中有关对象所引用其他对象减到最少
- 中介者模式与GUI开发
有关对象所引用其他对象减到最少