中介模式定义来一个单独的(中介)对象, 来封装一组对象之间的交互. 将这组对象之间的交互委派给予中介对象交互, 来避免对象之间的直接交互.
中介模式的设计思想跟中间层很像, 通过引入中介这个中间层, 将一组对象直接的交互关系(或者依赖关系)从多对多(网状关系)转化为一对多(星状关系). 原来一个对象要跟N个对象交互, 现在只需要跟一个中介对象交互, 从而最小化对象之间的交互关系, 降低了代码的复杂度, 提高了代码的可读性和可维护性.
观察者模式和中介模式区别
观察者模式中的交互关系一般都是单向的, 一个参与者只有一个身份, 要么是观察者, 要么是被观察者.
在中介模式中, 参与者之间的关系错综复杂, 既可以是消息的发送者, 也可以是消息的接收者.