web前端中观察者模式的示例分析
发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,这篇文章给大家分享的是有关web前端中观察者模式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。观察者模式(Observer Pattern)观察者模式又称发布-订
千家信息网最后更新 2025年11月19日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安全错误
数据库的锁怎样保障安全
杨浦区国际软件开发售后服务
天门金豹软件开发
bios开启服务器节能模式
中国5g数据库公司
手机版网络安全靶场下载
停车场连接服务器失败
全民奇迹数据库验证
mc服务器禁止物品
湘潭智能软件开发哪家好
网络安全 挖矿 通知
软件开发人员上夜班吗
软件开发用的工具
科技大佬产业互联网
pyqt数据库控件
脉冲神经网络技术
江苏北斗时间同步服务器
三级网络技术路线规划
服务器修改时间后自动改回来
java中数据库的框架有
普陀区网络技术服务咨询
河南长天网络技术服务
晋宁区综合软件开发价格实惠
软件开发系统维修问题
湖南长银58软件开发
什么是服务器带宽
软件开发代做图片
中国q1服务器份额
因服务器维护
h3c虚拟服务器
wps 连接数据库