使用哪种设计模式来达到多个休息api

时间:2017-10-21 21:12:55

标签: javascript express design-patterns

我有一个问题,我需要一些帮助。

在我目前的应用程序中,我需要点击多个rest api(来自express)来获取数据并构建我的页面。 目前我正在使用promise.all从所有api端点获取数据。我可以放在它上面的任何设计模式,它可以帮助我解耦应用程序。

所以,我需要知道哪种设计模式最适合解决这类问题。

任何一个例子对我都会有所帮助。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我建议你使用 Facade Design Pattern 。 Facade Pattern为用户提供了一个简单的界面,同时隐藏了它的底层复杂性。

Facade模式非常适合将不同的API整合到一个面向公众的界面中,该界面与幕后的其他API连接。它已经在JavaScript中使用了很长时间,你可能已经多次使用它而不知道它。

下面是Facade Design Pattern的基本示例:

'use strict';

var Mortgage = function(name) {
    this._name = name;
};

Mortgage.prototype = {
    apply: function(amount) {
        var result = 'Mortgage approved';
        if(!new Bank().verify(this._name, amount)) {
             result = 'Mortgage denied';
        } else if(!new Credit().verify(this._name, amount)) {
             result = 'Mortgage denied';
        } else if (!new Background().verify(this._name, amount)) {
            result = 'Mortgage denied';
        }
        return this._name + ' has been ' + result + ' for a ' + amount + ' mortgage';
    }
};

var Bank = function() {
    this.verify = function(name, amount) {
        // Implementation
        return true;
    };
};

var Credit = function() {
    this.verify = function(name, amount) {
        // Implementation
        return true;
    };
};

var Background = function() {
    this.verify = function(name, amount) {
        // Implementation
        return true;
    };
};