这(下图)可以被视为立面(结构设计模式)吗?

时间:2016-05-31 00:10:27

标签: javascript design-patterns

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);
你怎么看?入口门面只有一个......但是对吗?是否有关于创建立面的具体规则?

1 个答案:

答案 0 :(得分:0)

不,它不能。

门面用英语表示“建筑物的表面,特别是俯视街道或空地的主要面板”。因此,许多人将Facade模式混淆为充当其他东西的入口 - 但事实并非如此。

根据this,Facade模式背后的意图是:

  
      
  • 为子系统中的一组接口提供统一接口。 Facade定义了一个更高级别的界面,使子系统更易于使用。
  •   
  • 使用更简单的界面包装复杂的子系统。
  •   

你的例子既没有一堆子系统也没有一个接口来包装它们。