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

本文介绍了JavaScript中的观察者模式,也称为发布-订阅者模式,用于实现对象间的解耦。内容包括模式的三个接口:注册、发布和移除信息,以及如何处理不同参数的传递。观察者模式在团队开发中用于模块间通信,例如在老师提问学生的情景中,老师作为发布者,学生作为订阅者。通过使用观察者模式,可以降低对象间的耦合度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

//以前写的代码
var Observer = (function(){
	//防止消息队列暴露而被篡改故将消息容器作为静态私有变量保存
	var _messages = {}
	return {
		//注册消息接口
		regist:function(type,fn){
			//如果此消息不存在则应该创建一个该消息类型
			if(typeof _messages[type] === 'un
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kitt15

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

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

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

打赏作者

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

抵扣说明:

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

余额充值