代码之家  ›  专栏  ›  技术社区  ›  Jim

命令模式应用的真实世界示例

  •  15
  • Jim  · 技术社区  · 14 年前

    Command pattern 可用于实现 Transactional behavior (以及 Undo )。
    但我在谷歌上找不到这样的例子。我只能找到一些微不足道的例子 switched on off
    我在哪里可以找到编码示例(最好在 Java )使用 Command Pattern ?

    3 回复  |  直到 10 年前
        1
  •  25
  •   Vikdor    14 年前

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

    1. 在数据库中创建一条记录。
    2. 调用服务以更新相关记录。
    3. 请致电其他服务以记录票证。

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

    希望这能有所帮助。

        2
  •  3
  •   obataku    14 年前
    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"));
    
        3
  •  2
  •   Ekta    11 年前

    命令模式在很多地方都有使用。

    1. 当然,您随处可见的是GUI实现的一个非常琐碎的例子,即开关。它也被广泛用于游戏开发。使用这种模式,用户也可以在屏幕上配置他的按钮。
    2. 如果命令必须传递到另一端,它也用于网络。
    3. 当程序员想要存储用户执行的所有命令时,例如,有时游戏可以让你回放整个级别。
    4. 它用于实现回调。

    下面是一个站点,它提供了用于回调的命令模式示例。 http://www.javaworld.com/article/2077569/core-java/java-tip-68--learn-how-to-implement-the-command-pattern-in-java.html?page=2

    1. 下面是另一个链接,它显示了带有数据库的命令模式。代码是用C#编写的。 http://www.codeproject.com/Articles/154606/Command-Pattern-at-Work-in-a-Database-Application