详解js中观察模式和订阅发布模式的区别 比眉伴天荒 2023-01-16 06:49 108阅读 0赞 观察者模式和订阅发布模式的区别是没有事件中心 在观察者模式中 发布者需要知道订阅者的存在 不需要像订阅发布模式一样 需要事件中心来隔离订阅者和发布者 详细可参考上偏文章[详解js中订阅发布模式的原理即运用场景][js] ## 观察者模式中只有订阅者和发布者 ## 观察者 观察者(订阅者)--watcher 所有的订阅者中 都有一个update方法 当事件发生的时候 会调用所有订阅者的unpdate方法 在vue的响应机制中 当数据发生变化时 会调用观察者的update方法 update方法会去更新视图 发布者 update方法是有发布者调用的 发布者又叫做目标 在发布者内部 记录所有的订阅者 因此 发布者中需要一个属性(subs)定义所有的订阅者 这个属性是一个数组 我们所有的观察者 都要添加到数组中 因此 我们还需要一个添加观察者的方法 addSub() 最后发布者 还需要一个notify方法 这个方法的作用是 当事件发生的时候 调用所有的观察者的update方法 ## 简要总结概念 ## 观察者 unpdate() 当事件发生事 具体要做的事情 在vue中 就是更新视图 发布者(目标)vue中 dep subs 数组 存储所有的观察者 addSub 添加观察者 notify 当事件发生时 调用所有的观察者的update方法 接下来 我们简单的实现一个观察模式 在这里只是做个演示 不考虑复杂的情况及参数的情况 // 发布者 class Dep { constructor() { this.subs = []; } addSub(sub) { if (sub && sub.update) { //必须存在观察者并且存在update方法 this.subs.push(sub) } } notify() { this.subs.forEach(sub => { sub.update() }) } } // 观察者 class Watcher { update() { console.log('update') } } let dep = new Dep(); let w = new Watcher(); dep.addSub(w); dep.notify(); ## 附上图文详解 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzA5Nzk0NA_size_16_color_FFFFFF_t_70_pic_center] [上一篇文章: 详解js中订阅发布模式的原理即运用场景][js] 下一篇文章: [js]: https://blog.csdn.net/weixin_43097944/article/details/116094093?spm=1001.2014.3001.5502 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzA5Nzk0NA_size_16_color_FFFFFF_t_70_pic_center]: /images/20221022/f7c7de9f751b4b8d96c664ffb9702f3e.png
相关 观察者模式与订阅发布模式的区别 1、观察者模式 观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式 水深无声/ 2023年10月07日 20:01/ 0 赞/ 69 阅读
相关 观察者模式 vs 发布订阅模式 目录 场景 观察者模式 发布订阅模式 总结 -------------------- 场景 有一回面试,面试官问: 末蓝、/ 2023年10月06日 19:03/ 0 赞/ 30 阅读
相关 详解js中观察模式和订阅发布模式的区别 观察者模式和订阅发布模式的区别是没有事件中心 在观察者模式中 发布者需要知道订阅者的存在 不需要像订阅发布模式一样 需要事件中心来隔离订阅者和发布者 详细可参考上偏文章[详解j 比眉伴天荒/ 2023年01月16日 06:49/ 0 赞/ 109 阅读
相关 设计模式 之 观察者与发布订阅模式区别 概念 观察者模式 > 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 发布订阅模式 > 订阅者把自己想订阅的 àì夳堔傛蜴生んèń/ 2022年12月27日 09:25/ 0 赞/ 233 阅读
相关 订阅发布和观察者模式 发布订阅模式 > 把多个方法暂存起来,最后一次触发执行 作用: 解偶 使用场景: 如,多个类或者函数内,可以分散订阅某个操作,最后统一发布。分散的好处就是不 ╰+攻爆jí腚メ/ 2022年08月28日 14:47/ 0 赞/ 222 阅读
相关 观察者模式(发布-订阅者模式) 观察者模式定义了一种依赖关系,解决了主体对象和观察者之间功能的耦合,主要应用于大型项目的模块化开发中,解决团队开发中模块之间的通信问题,利用观察者模式还可以实现自定义事件。 素颜马尾好姑娘i/ 2022年05月22日 06:00/ 0 赞/ 236 阅读
相关 javascript 观察者模式 发布订阅模式 观察者模式 观察者模式,每一个观察者对象有两个方法 添加监听`subscribe` 发布事件`publish` 观察者有个`list`存放所有的已经添加监 本是古典 何须时尚/ 2022年04月24日 10:14/ 0 赞/ 230 阅读
相关 JavaScript中观察者和发布订阅模式 可以参考文章: [https://juejin.im/post/5a14e9edf265da4312808d86][https_juejin.im_post_5a14e9e 超、凢脫俗/ 2022年01月27日 07:07/ 0 赞/ 235 阅读
相关 发布订阅模式(观察者模式) 设计模式的目的就是使类成为可复用的组件。 在观察者模式中观察者接口只注重被观察者,而被观察者接口只注重观察者,具体是观察者接口实现类中的哪一个并不在意,而被观察者也是如此。这 清疚/ 2021年12月15日 00:27/ 0 赞/ 311 阅读
还没有评论,来说两句吧...