码迷,mamicode.com
首页 > 编程语言 > 详细

学习javascript设计模式之发布-订阅(观察者)模式

时间:2015-08-20 18:35:03      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

1、发布-订阅模式又叫观察者模式,它定义对象之间一种一对多的依赖关系。

2、如何实现发布-订阅模式

  2-1、首先指定好发布者

  2-2、给发布者添加一个缓冲列表,用户存放回调函数以便通知订阅者

  2-3、最后发布消息时候,发布者会遍历这个缓存列表,依次触发里面存放的订阅者回调函数

例子:

var salesOffice = {};
salesOffice.clientList = [];
salesOffice.listen = function(key,fn){
    if(!this.clientList[key]){
        this.clientList[key] = [];
    }
    this.clientList[key].push(fn);
}
salesOffice.trigger = function(){
    var key = Array.prototype.shift.call(arguments),
        fns = this.clientList[key];
    if(!fns || fns.length == 0){
        return false;
    }
    for(var i=0,fn; fn = fns[i++];){
        fn.apply(this,arguments);
    }
}

salesOffice.listen(‘s88‘,function(p){
    console.log("价格+" + p)
})

salesOffice.listen(‘s300‘,function(p){
    console.log("价格+" + p)
})

salesOffice.trigger(‘s88‘,20000);
salesOffice.trigger(‘s300‘,3000);

发布订阅的通用实现:

 

学习javascript设计模式之发布-订阅(观察者)模式

标签:

原文地址:http://www.cnblogs.com/junwu/p/4745860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!