命令模式
行为请求者和行为实现者紧耦合
eg: 烧烤摊
对请求排队或者记录请求日志,以及支持科撤销的操作,上述实现不太合适,可以考虑命令模式。
eg: 烧烤店
请求的命令可能是各种各样的,因此抽象1个命令类。
public abstract class command
{
protected Barbecuer recevier;//确定 烧烤者是谁,实际应用者上也不需要指定
public command(Barbecuer recevier)//在构造函数时导入,可以SetBarbecuer(Barbecuer recevier)
{
this.receiver = receiver;
}
//执行不同的命令
abstract public void ExcuteCommand();//执行命令为什么放在此处,应该是厨师执行命令,此处 合并了通知 和 执行命令的操作。
}
//不同的命令,烤羊肉命令
class BakeMuttionCommand : Command
{
overriad public void ExcuteCommand()//执行命令
{
//烤羊肉
receiver.BakeMutton();//厨师烧烤命令
}
}
//服务员
public class waiter
{
list <Command> CommandList = new list<Command>;//命令列表
AddCommand(Command command)//添加单个命令
{
CommandList.Add(command);
}
SubCommand(Command command)//删除单个命令
{
CommandList.Remove(command);
}
public Notify()//定好的菜单,通知厨师
{
for list
cmd.ExecuteCommand();
}
}

浙公网安备 33010602011771号