public void CommandTest() { { Command command = new CommandA(); var i = new Invoke(command); i.ExecuteCommand(); } { // 创建银行帐号 var account = new Account(); // 创建一个存入500元的命令 var commandIn = new MoneyInCommand(account, 500); // 创建一个调度者 var invoker = new Invoker(); // 执行存钱 invoker.ExecuteCommand(commandIn); Console.WriteLine("当前余额 " + account.GetTotalAmount().ToString("N2")); // 再次存入500 var commandIn2 = new MoneyInCommand(account, 500); invoker.ExecuteCommand(commandIn2); Console.WriteLine("当前余额 " + account.GetTotalAmount().ToString("N2")); // 取出300 var commandOut = new MoneyOutCommand(account, 300); invoker.ExecuteCommand(commandOut); Console.WriteLine("当前余额 " + account.GetTotalAmount().ToString("N2")); //重复 invoker.Redo(); Console.WriteLine("当前余额 " + account.GetTotalAmount().ToString("N2")); } }
static void Main(string[] args) { BankAccount account = new BankAccount(); //创建银行账号 Command commandIn = new MoneyInCommand(account, 500); //创建一个存款500的命令 Invoker invoker = new Invoker(); // 创建一个调度者 invoker.SetCommand(commandIn); //调度一个 存款 命令 invoker.ExecuteCommand(); //执行刚调度的命令 Command commandIn2 = new MoneyInCommand(account, 500); //创建一个 再次 存入 500元 的命令 invoker.SetCommand(commandIn2); //调度这个 又存入500元的 命令 invoker.ExecuteCommand(); //执行刚调度的命令 Command commandOut = new MoneyOutCommand(account, 300); //创建一个 取款 300元 的命令 invoker.SetCommand(commandOut); //调度一个 取款命令 invoker.ExecuteCommand(); //执行刚调度的命令 Command commandTransferIn = new TransferInCommand(account, 8000); //创建一个 转入 8000元 的命令 invoker.SetCommand(commandTransferIn); //调度这个 转入命令 invoker.ExecuteCommand(); //执行刚调度的命令 Command commandTransferOut = new TransferOutCommand(account, 1500); //穿件一个 转出 1500元 的命令 invoker.SetCommand(commandTransferOut); //调度这个 转出命令 invoker.ExecuteCommand(); //执行刚调度的命令 //AlipayAccount alipayAccount = new AlipayAccount(); //Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888); //AlipayUser alipayUser = new AlipayUser(); //alipayUser.SetCommand(alipayIn); //alipayUser.ExecuteCommand(); AlipayAccount alipayAccount = new AlipayAccount(); Command alipayIn = new AlipayAccountMoneyInCommand(alipayAccount, 8888); Invoker alipayUser = new Invoker(); alipayUser.SetCommand(alipayIn); alipayUser.ExecuteCommand(); Command alipayAccountTransferInCommand = new AlipayAccountTransferInCommand(alipayAccount, 5000); alipayUser.SetCommand(alipayAccountTransferInCommand); alipayUser.ExecuteCommand(); Console.Read(); }