JS设计模式之订阅发布模式

JavaScript07

JS设计模式之订阅发布模式,第1张

参考我的印象笔记

下面稍微解释一下这个图(框架源码整个过程比较复杂,如果现在看不懂下面几段也没关系,大致了解一下即可)。

我们可以看看 Vue 的源码:

3、发布-订阅模式的优缺点

发布-订阅模式最大的优点就是解耦:

发布-订阅模式也有缺点:

发布-订阅模式和观察者模式

观察者模式与发布-订阅者模式,在平时你可以认为他们是一个东西,但是某些场合(比如面试)下可能需要稍加注意,借用网上一张流行的图:

区别主要在发布-订阅模式中间的这个 Event Channel:

发布-订阅模式和责任链模式

发布-订阅模式和责任链模式也有点类似,主要区别在于:

Subscriptions 是一种从 源 获取数据的方法,它来自于 elm。

Subscription 语义是订阅,用于订阅一个数据源,然后根据条件 dispatch 需要的 action。数据源可以是当前的时间、服务器的 websocket 连接、keyboard 输入、geolocation 变化、history 路由变化等等。

model中的subscription相当于一个监听器,可以监听路由变化,鼠标,键盘变化,服务器连接变化,状态变化等,这样在其中就可以根据不同的变化做出相应的处理,在这个subsription中的方法名是随意定的,每次变化都会一次去调用里面的所有方法,所以一边会加相应的判断。

1、打开JSBox,所有脚本界面可以看到已经添加的脚本列表,软件内置了多个样本脚本。

2、点击右上角的加号按钮,可以新建脚本。

3、在脚本创建成功后就可以运行boxjs的订阅。