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