中介者模式
定义:中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,
所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,
只需要通知中介者对象即可。中介者使各对象之间耦合松散,而且可以独立地改变它们之间的交互。
中介者模式使网状的多对多关系变成了相对简单的一对多关系。
举例:
手机购买页面(颜色、数量、内存、价格)
MVC模式(控制层便是位于表现层与模型层之间的中介者。)
我们应该很熟悉 MVC 三层模型实体模型(Model)、视图表现层(View)还有控制层(Control/Mediator)。1
2
3
4
5
6
7
8
9
10/** 模擬 Model, View, Controller */
var M = {}, V = {}, C = {};
/** Model 负责存放资料*/
M.data = "hello world";
/** View 负责将资料输出到页面*/
V.render = (M) => { alert(M.data); }
/** Controller 作为一个M和V的桥梁*/
C.handleOnload = () => { V.render(M); }
window.onload = C.handleOnload;
MVC 模式中的Control/Mediator 层,就是本设计模式的中介者 (它必须拿到 View 和 Model 的引用)。
手机购买页面
1 | <body> |
这里共有手机颜色、手机内存、手机数量的选择和展示共6个对象,和一个中介者对象。
中介者必须获得这6个对象的应用,当每个对象发生变化时都需要通知中介者,中介者再来执行具体操作。