0
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つですが...そうですか?ファサードの作成に関する具体的なルールはありますか?これは(以下の)ファサード(構造設計パターン)と考えることができますか?
あなたはどう思いますか?何か考えましたか? –
非常に賢いデザイン。 BankOperationCheckerをクライアント内部で集約する利点は何ですか?クライアントインスタンスを動的に使用することさえありません。 BankOperationCheckerは実際には何もチェックしていないようで、ループ内のメソッドを実行するだけです。 – plalx
ファサードパターンは、ほとんどのあらゆる抽象化コードが「ファサード」と呼ばれることができるので、かなりグローバルなデザインパターンです。しかし、あなたのケースでは、BankOperationChecker関数のクラスを公開すると、パターンの一部が破損することを願っています。 Addyの本を見てください。https://addyosmani.com/resources/essentialjsdesignpatterns/book/#facadepatternjavascript –