博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命令模式
阅读量:6272 次
发布时间:2019-06-22

本文共 1466 字,大约阅读时间需要 4 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CommandSchema{class Program{static void Main(string[] args){Barbecue boy=new Barbecue();Command bakeMuttonCommand=new BakeMuttonCommand(boy);Command bakeChickenWingCommand=new BakeChickenWingCommand(boy);Waiter gril=new Waiter();gril.SetOrder(bakeMuttonCommand);gril.SetOrder(bakeChickenWingCommand);gril.Notify();Console.ReadLine();}}/// /// 烤羊肉串的人/// class Barbecue{public void BakeMutton(){Console.WriteLine("开始烤羊肉串");}public void BakeChickenWing(){Console.WriteLine("开始烤鸡翅膀");}}/// /// 抽象命令/// abstract class Command{protected Barbecue receiver;protected Command(Barbecue receiver){this.receiver = receiver;}abstract public void ExecuteCommand();}class BakeMuttonCommand:Command{public BakeMuttonCommand(Barbecue receiver) : base(receiver){}public override void ExecuteCommand(){receiver.BakeMutton();}}class BakeChickenWingCommand:Command{public BakeChickenWingCommand(Barbecue receiver) : base(receiver){}public override void ExecuteCommand(){receiver.BakeChickenWing();}}/// /// invoker/// class Waiter{private IList orders=new List();public void SetOrder(Command command){orders.Add(command);Console.WriteLine("增加订单:" + command + " 时间:" + DateTime.Now);}public void CancelOrder(Command command){orders.Remove(command);Console.WriteLine("取消订单:" + command + " 时间:" + DateTime.Now);}public void Notify(){foreach (Command command in orders){command.ExecuteCommand();}}}}

转载地址:http://hplpa.baihongyu.com/

你可能感兴趣的文章
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
MaxCompute 学习计划(一)
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>