心胸决定格局,眼界决定境界...

命令模式

行为请求者和行为实现者紧耦合

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();

}

 

}

 

posted @ 2014-01-08 18:12  WELEN  阅读(141)  评论(0)    收藏  举报