function BankOperationChecker() {
//This is the facade
this.applyFor = function(facadeMethods) {
for (var method in facadeMethods) {
facadeMethods[method]();
}
}
}
function BankClient(name, amount) {
this.name = name;
this.amount = amount;
this.bankOperations = new BankOperationChecker();
}
var client = new BankClient("Davi Vieira", 2000);
var checkMethods = {
cleanBackground: function() {
console.log('The background of this client is clean.');
},
canGetCredit: function() {
if (client.amount > 1000) {
console.log('Can get credit!');
} else {
console.log('Cannot get credit!');
}
}
}
client.bankOperations.applyFor(checkMethods);
你怎么看?入口门面只有一个......但是对吗?是否有关于创建立面的具体规则?
答案 0 :(得分:0)
不,它不能。
门面用英语表示“建筑物的表面,特别是俯视街道或空地的主要面板”。因此,许多人将Facade模式混淆为充当其他东西的入口 - 但事实并非如此。
根据this,Facade模式背后的意图是:
- 为子系统中的一组接口提供统一接口。 Facade定义了一个更高级别的界面,使子系统更易于使用。
- 使用更简单的界面包装复杂的子系统。
你的例子既没有一堆子系统也没有一个接口来包装它们。