javascript设计模式----观察者模式

观察者模式:又被称作发布-订阅者模式或消息几支,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合。
观察者模式有3个接口,注册信息接口,发布信息接口,移除信息接口
注册信息接口:判断消息是否存在于消息容器_messages中,如果不存在,那么将该消息类型推入到消息容器_messages中,注意这里推入的是数组形式的消息,所以_massages[type]=[fn]。如果该消息已存在于消息容器中,将新的动作追加到对应的消息类型中。
发布消息接口(执行对应类型的消息):如果消息没有注册,则返回,如果存在,将消息类型于传过来的参数封装成events对象,然后遍历对应消息类型的动作队列。
消息注销接口:检验消息类型是否存在,遍历消息动作队列,逐个移除。

//以前写的代码
var Observer = (function(){
	//防止消息队列暴露而被篡改故将消息容器作为静态私有变量保存
	var _messages = {}
	return {
		//注册消息接口
		regist:function(type,fn){
			//如果此消息不存在则应该创建一个该消息类型
			if(typeof _messages[type] === 'undefined'){
				//将动作推入到该消息对应的动作执行队列中
				_messages[type] = [fn];
			}//如果消息存在
			else{
				//将动作推入到该消息
				_messages[type].push(fn)
			}
		},
		fire:function(type,args){
			//如果消息没有注册,则
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kitt15

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值