設計模式(十四):命令模式

優勢:spa

  ① 可下降 請求發送者與請求接收者之間的耦合code

  ② 新增和刪除Command對象變得容易,方便被操縱和擴展。對象

缺點:blog

  ① 可能致使某些系統有過多的具體命令類,影響該模式效率。接口

適用範圍:it

  系統須要將請求調用者和請求接收者解耦,使得調用者和接收者不直接交互。class

客戶端:效率

  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 (服務員-傳達命令,包括命令列表(訂單)屬性、訂單新增命令、訂單移除命令、通知廚師所有執行等方法)
         *
         */
相關文章
相關標籤/搜索