主页 > 经济 >

JS每日一题:设计模式-如何理解观察者(发布订阅

时间:2019-11-11 11:37

来源:未知作者:admin点击:

  定义: 观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己

  生活实例理解:你今天去看一个楼盘,去了之后发布楼盘还没有对外销售,你不知道楼盘时候会对外销售,于是你找了楼盘的负责人,告诉他什么时候楼盘开始销售了电话通知你,订阅模式然后想要买的人不是你一个,其它人也是通过留电话的方式给销售负责人来及时获取消息

  不难发现,上面的例子正好对应上我们的观察者模式的定义, 多个想要买房的人同时订阅了一个主题(楼盘对外销售),这个主题更新时,这些观察者(买房)都会作出相应的动作

  在这里我们想在用户点击的时候做出相应的处理,但是我们不知道用户在什么时候去点击,所以我们去订阅body上的click事件,在这里我们还可以去随意增加订阅者,这样并不影响我们的发布者

  我们已经实现在最简易版的发布订阅,但其实是存在问题的,每个人可能订阅户型是不同的, 上面我们实现的是,只要一开始销售就通知所有订阅的人,显然是不合理的,我们将代码再来改写一下

  总的来说,观察者模式所做的工作就是在解耦,让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响到另一边的变化JS每日一题:设计模式-如何理解观察者(发布订阅)模式?

【责任编辑:admin】
热图 更多>>
热门文章 更多>>