首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript中介者与观察者

javascript中介者与观察者
EN

Stack Overflow用户
提问于 2013-09-24 09:55:05
回答 1查看 1.3K关注 0票数 3

首先,我想说我已经用谷歌搜索了javascript mediator vs observer,并阅读了近十个链接。

我还在statckoverflow中搜索,得到了这个Mediator Vs Observer Object-Oriented Design Patternsmediator-vs-observer

然而,我仍然不清楚它们之间的区别。

所以我想知道有没有人能解释得更清楚一些?

也许是一个活生生的例子。:)

谢谢。

我试着创建一个例子,这是一种中介者模式吗?

代码:

代码语言:javascript
运行
复制
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是否应该知道触发消息的对象的存在?

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 10:11:47

观察者模式:被观察对象管理自己的观察者(又称监听器)列表,当某个事件发生时,必须通知这些观察者(也称为监听器)。

中介器模式:被观察对象不知道它的观察者列表,有一个外部实体在被观察对象和观察者之间建立映射。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18971775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档