web前端中观察者模式的示例分析
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章给大家分享的是有关web前端中观察者模式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。观察者模式(Observer Pattern)观察者模式又称发布-订
千家信息网最后更新 2025年02月04日web前端中观察者模式的示例分析
这篇文章给大家分享的是有关web前端中观察者模式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
观察者模式(Observer Pattern)
观察者模式又称发布-订阅模式(Publish/Subscribe Pattern),是我们经常接触到的设计模式,日常生活中的应用也比比皆是,比如你订阅了某个博主的频道,当有内容更新时会收到推送;又比如JavaScript中的事件订阅响应机制。观察者模式的思想用一句话描述就是:被观察对象(subject)维护一组观察者(observer),当被观察对象状态改变时,通过调用观察者的某个方法将这些变化通知到观察者。
观察者模式中Subject对象一般需要实现以下API:
subscribe(): 接收一个观察者observer对象,使其订阅自己
unsubscribe(): 接收一个观察者observer对象,使其取消订阅自己
fire(): 触发事件,通知到所有观察者
用JavaScript手动实现观察者模式:
// 被观察者function Subject() { this.observers = [];}Subject.prototype = { // 订阅 subscribe: function (observer) { this.observers.push(observer); }, // 取消订阅 unsubscribe: function (observerToRemove) { this.observers = this.observers.filter(observer => { return observer !== observerToRemove; }) }, // 事件触发 fire: function () { this.observers.forEach(observer => { observer.call(); }); }}
验证一下订阅是否成功:
const subject = new Subject();function observer1() { console.log('Observer 1 Firing!');}function observer2() { console.log('Observer 2 Firing!');}subject.subscribe(observer1);subject.subscribe(observer2);subject.fire(); //输出:Observer 1 Firing! Observer 2 Firing!
验证一下取消订阅是否成功:
subject.unsubscribe(observer2);subject.fire();//输出:Observer 1 Firing!
场景
DOM事件
document.body.addEventListener('click', function() { console.log('hello world!');});document.body.click()
vue 响应式
优点
支持简单的广播通信,自动通知所有已经订阅过的对象
目标对象与观察者之间的抽象耦合关系能单独扩展以及重用
增加了灵活性
观察者模式所做的工作就是在解耦,让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响到另一边的变化。
缺点
过度使用会导致对象与对象之间的联系弱化,会导致程序难以跟踪维护和理解
感谢各位的阅读!关于"web前端中观察者模式的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
观察
观察者
模式
订阅
对象
事件
内容
变化
前端
示例
分析
成功
之间
就是
更多
篇文章
耦合
输出
验证
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海南软件开发取费依据
sql点不了本地服务器怎么办
百度百川网络技术有限公司
web调用小程序云数据库
数据库14287是啥意思
阿里云租用服务器GPU
时序数据库报价
衡阳网络安全与信息化发展科
亲爱的热爱的 网络安全大赛
与计算机网络技术有关的课程
人工神经网络技术的局限性有哪些
天津加工软件开发规定
速达3000安装数据库
利用网络技术帮助别人犯罪
综合管理服务器与存储器区别
数据库迁移 新旧表
克州信息化网络安全法律法规测试
宝清青少年网络安全课
建设云服务器
软件开发记什么会计分录
人保财险数据库项目招标
网络安全宣传单内容
服务器管理器远程桌面是红色
内网服务器安装软件
数据库oracle11功能
网络安全行为红线有哪些
电脑快捷打开服务器
学生应如何提高网络安全意识
我心中的网络安全1500字论文
苹果服务器异常怎么弄