美文网首页
观察者模式

观察者模式

作者: _皓月__ | 来源:发表于2021-02-26 10:57 被阅读0次

    观察者模式(发布订阅模式)

    什么是观察者模式?它分为注册环节跟发布环节。

    比如我去买芝士蛋糕,但是店家还没有做出来。这时候我又不想在店外面傻傻等,我就需要隔一段时间来回来问问蛋糕做好没,对于我来说是很麻烦的事情,说不定我就懒得买了。

    店家肯定想要做生意,不想流失我这个吃货客户。于是,在蛋糕没有做好的这段时间,有客户来,他们就让客户把自己的电话留下,这就是观察者模式中的注册环节。然后蛋糕做好之后,一次性通知所有记录了的客户,这就是观察者的发布环节。

    这里来简单实现一个观察者模式的类

    function Observer() {
      this.dep = [];
    
      this.register = function (fn) {
        this.dep.push(fn);
      };
      this.notify = function () {
        this.dep.forEach(item => item());
      };
    }
    
    const wantCake = new Observer();
    // 每来一个顾客就注册一个想执行的函数
    wantCake.register(() => {
      console.log("call daisy");
    });
    wantCake.register(() => {
      console.log("call anny");
    });
    wantCake.register(() => {
      console.log("call sunny");
    });
    
    // 最后蛋糕做好之后,通知所有的客户
    wantCake.notify();
    

    相关文章

      网友评论

          本文标题:观察者模式

          本文链接:https://www.haomeiwen.com/subject/evrmfltx.html