我有一个问题,我需要一些帮助。
在我目前的应用程序中,我需要点击多个rest api(来自express)来获取数据并构建我的页面。 目前我正在使用promise.all从所有api端点获取数据。我可以放在它上面的任何设计模式,它可以帮助我解耦应用程序。
所以,我需要知道哪种设计模式最适合解决这类问题。
任何一个例子对我都会有所帮助。
提前致谢!
答案 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;
};
};