设计模式(十四):命令模式

优点:

  ① 可降低 请求发送者与请求接收者之间的耦合

  ② 新增和删除Command对象变得容易,方便被操纵和扩展。

缺点:

  ① 可能导致某些系统有过多的具体命令类,影响该模式效率。

适用范围:

  系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。

客户端:

  Chef chef = new Chef(); //厨师
  Command bakeChickenWingCommand = new BakeChickenWingCommand( chef ); //烤鸡翅
  Command bakeMuttonCommand = new BakeMuttonCommand( chef );//烤羊肉串

  Waiter girl = new Waiter();//服务员
  girl.setOrders(bakeMuttonCommand);//点烤羊肉串
  girl.setOrders(bakeChickenWingCommand); //点烤鸡翅
  girl.cancelOrder(bakeChickenWingCommand);// 取消点烤鸡翅

  girl.notifys(); //通知厨师做菜

        /**
         * Chef (厨师-执行命令,包括各做菜命令执行的方法,以备调用)
         *
         * Command (做菜命令接口,指定Chef、执行某个做菜命令的方法)
         * BakeMuttonCommand (烤羊肉串命令)  BakeChickenWingCommand (烤鸡翅命令)
         *
         * Waiter (服务员-传达命令,包括命令列表(订单)属性、订单新增命令、订单移除命令、通知厨师全部执行等方法)
         *
         */
posted on 2019-01-10 10:11  书生游  阅读(115)  评论(0编辑  收藏  举报