设计模式之行为型中介模式
Posted 专注前端开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之行为型中介模式相关的知识,希望对你有一定的参考价值。
通过中介者对象封装一系列对象之间的交互,使对象之间不再相互引用,降低他们之间的耦合,有时中介者对象也可以改变对象之间的交互。
观察者模式和中介者模式都是通过消息收发机制实现,不过在观察者模式中,一个对象既可以是消息的发送者也可以是消息的接收者,而中介者模式中消息的发送方只有一个就是中介者对象,而且中介者对象不能订阅消息,只有那些活跃对象(订阅者)才能订阅中介者消息。
// 中介者对象 var Mediator = function() { // 消息对象 var _msg = {}; return { // 订阅消息方法,type:消息名称 action:消息回调函数 register: function(type, action) { // 如果消息存在 if(_msg[type]) // 存入回调函数 _msg[type].push(action); else { // 不存在则建立消息容器 _msg[type] = []; _msg[type].push(action); } }, // 发布消息方法 send: function(type) { // 如果该消息已经被订阅 if(_msg[type]) { // 遍历已存储的消息回调函数 for(var i = 0, len = _msg[type].length; i < len; i++) { // 执行回调函数 _msg[type][i] && _msg[type][i](); } } } } }();
在中介者模式中,订阅者是单向的,只能是订阅者而不能是发布者。而消息统一由中介者对象发布。
以上是关于设计模式之行为型中介模式的主要内容,如果未能解决你的问题,请参考以下文章