您的位置:首页 > 其它

观察者模式

2016-02-15 10:18 148 查看
观察者模式:
观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,
让多个观察者对象同时监听某一个主题对象,
这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。
观察者模式需要先订阅再发布
var pubsub = {};(function (q) {var topics = {}, // 回调函数存放的数组subUid = -1;// 发布方法q.publish = function (topic, args) {if (!topics[topic]) {return false;}setTimeout(function () {var subscribers = topics[topic],len = subscribers ? subscribers.length : 0;while (len--) {subscribers[len].func(topic, args);}}, 0);return true;};//订阅方法q.subscribe = function (topic, func) {if (!topics[topic]) {topics[topic] = [];}var token = (++subUid).toString();topics[topic].push({token: token,func: func});return token;};//退订方法q.unsubscribe = function (token) {for (var m in topics) {if (topics[m]) {for (var i = 0, j = topics[m].length; i < j; i++) {if (topics[m][i].token === token) {topics[m].splice(i, 1);return token;}}}}return false;};} (pubsub));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: