设计模式(十四):命令模式
优点:
① 可降低 请求发送者与请求接收者之间的耦合
② 新增和删除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 (服务员-传达命令,包括命令列表(订单)属性、订单新增命令、订单移除命令、通知厨师全部执行等方法) * */