【问题标题】:Is it possible to implement observer pattern using REST API是否可以使用 REST API 实现观察者模式
【发布时间】:2017-02-27 07:49:33
【问题描述】:

我是模式的新手,想知道是否可以使用 REST api 实现观察者模式。我目前的观点是这是不可能的,因为 REST 更像是拉式架构,而观察者更像是推式架构。

欢迎您的想法。

【问题讨论】:

    标签: node.js rest push-notification chat observer-pattern


    【解决方案1】:

    一个对象维护一个依赖/观察者列表,并在状态变化时自动通知他们。为了实现观察者模式,EventEmitter 来救场

    // MyFancyObservable.js
    var util = require('util');  
    var EventEmitter = require('events').EventEmitter;
    function MyFancyObservable() {  
    EventEmitter.call(this);
    }
    util.inherits(MyFancyObservable, EventEmitter); 
    

    就是这样;我们刚刚制作了一个可观察的对象!为了使它有用,让我们为其添加一些功能。

    MyFancyObservable.prototype.hello = function (name) {  
    this.emit('hello', name);
    };
    

    太好了,现在我们的 observable 可以发出事件了 - 让我们试试吧!

    var MyFancyObservable = require('MyFancyObservable');  
    var observable = new MyFancyObservable();
    
    observable.on('hello', function (name) {  
    console.log(name);
    });
    
    observable.hello('john'); 
    

    更多详情请点击链接 Fundamental Node.js Design Patterns

    Immediate State Updates for REST/HTTP APIs using Observer Pattern

    【讨论】:

    • 我已将此标记为答案,因为似乎仍需要某种形式的推送通知才能实现共享链接中展示的“实时”功能
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多