/*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;//小号手知道了 console.log("开始"); } invoke() { this.Command.cmd(); } } let soldier=new Receiver(); let trumpeter=new Command(soldier); //我叫 let general=new Invoker(trumpeter); //我叫小号手击鼓 general.invoke(); */
核心: 执行一个命令时,将命令的触发者和执行者分开,不让触发者直接操作命令执行者。