命令模式应用的真实示例

命令模式可用于实现 (和 )。
但是我无法通过谷歌搜索找到这些例子。我只能找到一些微不足道的例子,一盏灯是或。
在哪里可以找到使用 ?Transactional behaviorUndoswitched onoffJavaCommand Pattern


答案 1

在我们的一个项目中,我们有以下要求:

  1. 在数据库中创建记录。
  2. 调用服务以更新相关记录。
  3. 调用另一个服务以记录票证。

若要以事务方式执行此操作,请将每个操作作为具有撤消操作的命令实现。在每个步骤结束时,命令被推送到堆栈上。如果操作在某个步骤中失败,那么我们从堆栈中弹出命令,并在弹出的每个命令上调用撤消操作。每个步骤的撤消操作都在该命令实现中定义,以撤消前面的 command.execute()。

希望这有帮助。


答案 2
public final class Ping implements Callable<Boolean> {

  private final InetAddress peer;

  public Ping(final InetAddress peer) {
    this.peer = peer;
  }

  public Boolean call() {
    /* do the ping */
    ...
  }
}
...
final Future<Boolean> result
    = executorService.submit(new Ping(InetAddress.getByName("google.com")));
System.out.println("google.com is " + (result.get() ? "UP" : "DOWN"));