1、命令模式(Command)定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。UML类图如下。(PS: UML图来自《大话设计模式》一书)
2、我们规划下这个包子店的角色,一个服务员兼收钱的(Waiter), 一个拿包子打豆浆的(Baker),假设就两种工作拿包子(Baozi)和打豆浆(Doujiang),这两中工作就对应了类图中的ConcreteCommand角色。先创建Baker类。
3、创建Command抽象类,包含Baker实例,构造函数和execute方法。
4、创建具体命令类,DoujiangCommand和BaoziCommand继承于Command类。顺便重写了toString方法,方便于打印日志。
5、创建Waiter类,用于听取客户需求和通知Baker送食物。-List<Comma艘绒庳焰nd> commands: 用于台仵瑕噤存储客户的需求-setOrder: 客户要食物-cancelOrder: 客户取消先前要的食物-notifyBaker: 通知Baker送食物过来
6、创建测试函数测试,运行查看结果。