多语言展示
当前在线:1392今日阅读:113今日分享:31

设计模式笔记之命令模式

小编家附近有家包子店,味道嘿巴适,每天早上来买早点的人爆多。但是老板是个糊涂蛋,经常性的忘记先后顺序,也不记得别个要的到底是包子还是馒头,是稀饭还是要现榨的豆浆。其实,如果有一个小本本来记录,就完全可以解决这个问题。保证了先后,明细,当客人等不及走掉了或者变换了要求也可以很方便的更改。在编程中,我们叫做“命令模式”。
工具/原料

能够使用java编程的电脑一台

方法/步骤
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 commands: 用于存储客户的需求- setOrder: 客户要食物- cancelOrder: 客户取消先前要的食物- notifyBaker: 通知Baker送食物过来

6

创建测试函数测试,运行查看结果。

注意事项

喜欢我的文章,别忘了点赞+收藏!配合分享效果更佳哦~

推荐信息