class Command { // Fields private var receiver: Receiver ; // Constructors private function Command( receiver:Receiver ) { this.receiver = receiver; } // Methods public function Execute():Void{}; } // "Receiver" class Receiver { // Methods public function Action():Void { trace("Called Receiver.Action()"); } } // "Invoker" class Invoker { // Fields private var command:Command ; // Methods public function SetCommand( command:Command ):Void { this.command = command; } public function ExecuteCommand():Void { command.Execute(); } } // "ConcreteCommand" class ConcreteCommand extends Command { // Constructors public function ConcreteCommand(receiver:Receiver) { super(receiver); } // Methods public function Execute():Void { receiver.Action(); } } //client.fla // Create receiver, command, and invoker var r:Receiver = new Receiver(); var c:Command = new ConcreteCommand(r); var i:Invoker = new Invoker(); // Set and execute command i.SetCommand(c); i.ExecuteCommand(); //Called Receiver.Action()
Command模式
最新推荐文章于 2020-08-23 16:01:18 发布