由来
意图
用一个中介对象来封装一系列的对象交互。
中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
动机
OO软件设计与开发中,应该尽量将对象细化,使其只负责或呈现单一的职责(单一职责原则),对象种类、个数增多
一个模块由很多对象构成,对象之间可能存在相互的引用
为了减少对象两两之间复杂的引用关系
使之成为一个松耦合的系统,需要使用中介者模式(动机)
适用性
**
软件构建过程中
**
常出现多个对象互相关联交互的情况
对象之间常常会维持一种复杂的引用关系。
遇到需求更改,直接引用关系将面临不断的变化
可使用一个“中介对象”来管理对象之间的关联关系
避免相互交互的对象之间的紧耦合引用关系
从而更好地抵御变化
下列情况下使用中介者模式 :
一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解
一个对象引用很多对象并直接通信, 导致难以复用该对象
想定制一个分布在多个类中的行为,而又不想生成太多的子类