中介者模式

1.定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2.主要目的:
中转作用,通过中介者和其他对象进行通信;协调作用,中介者可以进一步的对对象之间的关系进行封装
中介者对象不能订阅消息,只有活跃对象才可订阅中介者的消息,中介者是消息的发送者
中介者模式
文章图片

3.举例:购物车需求,比如购买手机时,购物车页面存在手机内存、颜色、购买数量等表单项,都会触发change事件,那么可以通过中介者来转发处理这些事件,实现各个事件间的解耦,仅仅维护中介者对象即可。

中介者模式demo - 锐客网 请选择颜色 请选择内存: 请输入购买数量: 您选择的颜色为: 您选择的内存为: 您选择的数量为:

4.优缺点:
优点:
中介者使各对象之间耦合松散,而且可以独立地改变它们之间的交互
中介者和对象一对多的关系取代了对象之间的网状多对多的关系
让每个对象了解最少的内容,这样做对于大型程序来说是非常有益的
缺点:
一个中介者如果管理的对象过多,可能会导致中介者本身难以维护,过度集中化,容易出现故障
【中介者模式】5.应用场景
(1)数据驱动:数据充当中介者角色,通过数据让各ui之间协同工作。
(2)当一个系统对象很多,且之间关联关系很复杂,交叉引用容易产生混乱时适合用中介者模式重构

    推荐阅读