中介者模式

1.定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2.主要目的:
中转作用,通过中介者和其他对象进行通信;协调作用,中介者可以进一步的对对象之间的关系进行封装
中介者对象不能订阅消息,只有活跃对象才可订阅中介者的消息,中介者是消息的发送者
中介者模式_第1张图片
3.举例:购物车需求,比如购买手机时,购物车页面存在手机内存、颜色、购买数量等表单项,都会触发change事件,那么可以通过中介者来转发处理这些事件,实现各个事件间的解耦,仅仅维护中介者对象即可。




    
    中介者模式demo
    
  

    
请选择颜色
请选择内存:
请输入购买数量:
您选择的颜色为:
您选择的内存为:
您选择的数量为:

4.优缺点:
优点:
中介者使各对象之间耦合松散,而且可以独立地改变它们之间的交互
中介者和对象一对多的关系取代了对象之间的网状多对多的关系
让每个对象了解最少的内容,这样做对于大型程序来说是非常有益的
缺点:
一个中介者如果管理的对象过多,可能会导致中介者本身难以维护,过度集中化,容易出现故障

5.应用场景
(1)数据驱动:数据充当中介者角色,通过数据让各ui之间协同工作。
(2)当一个系统对象很多,且之间关联关系很复杂,交叉引用容易产生混乱时适合用中介者模式重构

你可能感兴趣的:(htmljavascript)