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

上午继续看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赋值
  • 监听输入事件 实现数据响应式

二者关系

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

你可能感兴趣的:(观察者模式与发布订阅模式)