Skip to content

命令模式

亦称: 动作、事务、Action、Transaction、Command

1. 简介

命令模式是一种行为设计模式,命令模式在我们通常的互联网开发中相对来说用的比较少,但这样的模式在我们的日常中却经常使用到,那就是Ctrl+CCtrl+V。当然如果你开发过一些桌面应用,也会感受到这样设计模式的应用场景。从这样的模式感受上,可以想到这是把逻辑实现与操作请求进行分离,降低耦合方便扩展。
命令模式就是以数据驱动的方式将命令对象,可以使用构造函数的方式传递给调用者。调用者再提供相应的实现为命令执行提供操作方法。

2. 真实世界类比

Alt text 在市中心逛了很久的街后, 你找到了一家不错的餐厅, 坐在了临窗的座位上。一名友善的服务员走近你, 迅速记下你点的食物, 写在一张纸上。服务员来到厨房, 把订单贴在墙上。过了一段时间, 厨师拿到了订单, 他根据订单来准备食物。厨师将做好的食物和订单一起放在托盘上。服务员看到托盘后对订单进行检查, 确保所有食物都是你要的, 然后将食物放到了你的桌上。
那张纸就是一个命令, 它在厨师开始烹饪前一直位于队列中。命令中包含与烹饪这些食物相关的所有信息。厨师能够根据它马上开始烹饪, 而无需跑来直接和你确认订单详情。

3. 模拟场景

3. 解决方案

4. Java中的类

  • java.lang.Runnable的所有实现
  • javax.swing.Action的所有实现