观察者模式与发布订阅模式

上午继续看hzero-front的官方文档,修改了IP地址,可以启动,但是会跳到服务器报错页面,感觉这个项目比较大, 需要静下心来一步一步抽丝剥茧,慢慢消化才能有所收获,上午效率不高。
下午听了一节视频课,跟着内容了解了一遍观察者模式与发布订阅模式。

观察者模式

定义一个对象与其他对象之间的一种依赖关系,当对象发生某种变化的时候,依赖它的其它对象都会得到更新。一对多的关系;
利用Object.defineProperty的set和get方法劫持数据,

Object.defineProperty(obj,'name',{
        get(){
            return value;
        },
        set(newValue){
            console.log("set...");
            value = newValue;
        }
    })

(Proxy代理)

发布订阅模式

发布-订阅是一种消息模式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。

案例代码编写 实现v-model

  • 输入框input赋值
  • 监听输入事件 实现数据响应式

二者关系

观察者模式观察者与订阅者之间有直接联系。发布订阅中发布者和订阅者无直接依赖关系。观察者模式属于紧解耦,发布订阅模式属于松解耦。发布订阅广义上是观察者模式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。