1. 当多个类彼此关联,会增大耦合性,这时各个模块通过中介者进行交流,每个模块只负责自己的业务逻辑,
    2. 不属于自己的就丢给中介者,降低耦合。
    3. 定义:
    4. 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示的相互作用,
    5. 从而使其耦合松散,而且可以独立的改变他们之间的交互。
    6. 举个例子:
    7. Facade门面。
    8. 比如网上的天气接口api,我们在外部访问接口直接就可以获取天气数据了,但实际它的内部可能包含多个系统,
    9. 有测风力的,有测温度的,有测湿度的,有测雷雨的等等,我们通过它提供的api接口就可以直接获取到所有数据,
    10. 这个接口就相当于一个门面Facade,通过这个门面直接就可以拿到想要的数据,而不需要去管它内部各个系统之间的关系。
    11. Mediator调停者。
    12. 还是天气接口,上面举例说了门面模式。那么它的内部,也需要有这么一个模块来管理各个系统之间的关系。
    13. 比如测雷雨的系统,它测的时候需要和测风力的系统之间相互配合,根据风向和风力来推断何时下雨等等。
    14. 那么各个系统之间的交互是非常复杂的。如果此时新增一个系统,那么这个系统又会非常复杂的与其他系统
    15. 之间建立交互。那么这时候就出现一个调停者,大家全都通过它来与各个系统之间交互。它和门面模式有些类似,
    16. 只不过一个是对内,一个是对外。这就是调停者模式。当然,他们俩也可以使用同一个模块。非常类似。
    17. 这种模式在实际应用中,有非常广泛的应用。比如MQ消息中间件等等。消息中间件就是Mediator调停者。

    image.png

    image.png