一个命令模式的实际例子
一个快餐厅:
客户给服务员订单, 服务员把订单放到柜台并说: "有新订单了", 然后厨师按照订单准备饭菜....让我们仔细分析一下它们是怎么交互的:
客户来了, 说我想要汉堡, 奶酪....就是创建了一个订单 (createOrder()).
订单上面写着客户想要的饭菜. ...服务员的取订单takeOrder()方法会传进来不同的参数(不同客户的不同订单), 但是这不是问题, 因为她知道所有的订单都支持orderUp()方法.
厨师知道如何把饭做好....同样的, 厨师只是从订单上收到指令, 他从来不和服务员直接接触.
项目设计图
回到我们的需求, 参考快餐店的例子, 使用命令模式做一下设计:
客户Client创建了一个命令(Command)对象....其它
这个系列的代码我放在这里了: https://github.com/solenovex/Head-First-Design-Patterns-in-CSharp