class Receiver { exec() { console.log('執行'); } } class Command { constructor(receiver) { this.receiver = receiver; } cmd() { console.log('觸發命令'); this.receiver.exec(); } } class Invoker { constructor(command) { this.command = command; } invoke() { console.log('開始'); this.command.cmd(); } } // 士兵 let soldier = new Receiver(); // 小號手 let trumpeter = new Command(soldier); // 將軍 let general = new Invoker(trumpeter); general.invoke();
設計原則驗證