首先,我想说我已经用谷歌搜索了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
是否应该知道触发消息的对象的存在?
发布于 2013-09-24 02:11:47
观察者模式:被观察对象管理自己的观察者(又称监听器)列表,当某个事件发生时,必须通知这些观察者(也称为监听器)。
中介器模式:被观察对象不知道它的观察者列表,有一个外部实体在被观察对象和观察者之间建立映射。
https://stackoverflow.com/questions/18971775
复制相似问题