行为型-中介模式
# 中介模式
- Mediator Design Pattern
- 中介模式定义了一个单独的(中介)对象,来封装一组对象间的交互,将这组对象之间的交互委派给与中介对象交互,来避免对象之间的直接交互。
- 中介模式的设计思想跟中间层很像,通过引入中介这个中间层,将一组对象之间的交互关系(或者说依赖关系)从多对多(网状关系)转换为一对多(星状关系)。原来一个对象要跟 n 个对象交互,现在只需要跟一个中介对象交互,从而最小化对象之间的交互关系,降低了代码的复杂度,提高了代码的可读性和可维护性。
中介模式 VS 观察者模式
- 观察者模式:
- 在单进程中,需要观察者注册到被观察者中,被观察者状态更新需要调用观察者的 update 方法。
- 在跨进程中,可以利用消息队列实现彻底解耦,观察者和被观察者只需要跟消息队列交互,观察者完全不知道被观察者的存在。
- 尽管一个参与者既可以是观察者,同时也可以是被观察者,但大部分情况下交互往往都是单向的。
- 中介模式
- 只要当参与者之间的交互关系错综复杂,维护成本很高的时候,我们考虑使用中介模式。
- 如果一个参与者状态的改变,其他参与者执行的操作有一定先后顺序的要求,这个时候,中介模式就可以利用中介类,通过先后调用不同参与者的方法,来实现顺序的控制,而观察者模式是无法实现这样的顺序要求的。
上次更新: 2020/11/29, 15:11:00