首先我想说我已经用谷歌搜索javascript mediator vs observer
并阅读了近十个链接。
我也在 statckoverflow 中搜索,我得到了这个Mediator Vs Observer Object-Oriented Design Patterns和 mediator-vs-observer。
但是,我仍然不清楚它们之间的区别。
所以我想知道是否有人可以更清楚地解释它们?
也许是一个活生生的例子。:)
谢谢。
我尝试创建一个示例,这是一种中介模式吗?
代码:
var EventMediator = {
publish: function (target, message) {
var args = Array.prototype.slice.call(arguments, 2);
var msgs = target.messages || [];
for (var i = 0; i < msgs.length; i++) {
var msg = msgs[i];
msg.callback.apply(msg.context, args);
}
},
register: function (target, message, fn) {
target.messages = target.messages || [];
target.messages.push({
context: target,
callback: fn
});
}
};
var t1 = {name: 'kk'};
var t2 = {name: 'gg'};
EventMediator.register(t1, "nameChanged", function () {
console.info("t1 name chagned");
});
EventMediator.publish(t1, "nameChanged");
在这里我想知道是否Mediator
应该知道触发消息的对象的存在?