【问题标题】:Command pattern java API usage命令模式 java API 使用
【发布时间】:2014-11-12 18:45:13
【问题描述】:

我正在尽我所能记住设计模式。

我知道最好的方法是查看 Java API 中使用的设计模式。

除了 Java Swing 和 Runnable 接口等经典命令模式之外,有人可以提供其他 Java API 示例吗?

【问题讨论】:

  • 这些例子有什么问题?他们是很好的例子。另外,stackoverflow.com/q/1673841/438992.
  • 实际上没什么,我只想用其他示例来修复此模式,我看到了这篇文章,非常棒,如果您能提供其他 java 示例将不胜感激

标签: java design-patterns command-pattern


【解决方案1】:

维基上的描述是here


命令模式的要点

  • 命令模式有助于解耦调用者和接收者。接收者知道如何执行一项操作。
  • 命令有助于在java中实现回调。 有助于扩展性,因为我们可以在不更改现有代码的情况下添加新命令。
  • 命令定义了接收者和动作之间的绑定。
  • 命令应该能够实现撤消和重做操作。那就是让接收器处于静止状态。可以在接收器的支持下完成。

Java API 中的命令模式

java.lang.Runnable 和 javax.swing.Action 的实现遵循命令设计模式,正如@Dave Newton 所说的They're pretty good examples。那么你不需要在java api中找到另一个更好的例子。

示例

我有一个关于将 runnable 与 swing 一起使用的示例。在下面的代码中,可运行对象(命令)作为参数发送到方法,并且可以随时调用。

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        this.label.setText("Updated text");
    }
};
SwingUtilities.invokeLater(runnable);

总结

命令模式是一种强大而灵活的设计习惯,常用于图形用户界面设计中,用于处理用户发出的事件和命令。设计模式旨在在设计程序时允许更大的模块化,减少对任何给定代码块的依赖。

练习练习

使用命令模式,创建一个模拟简单计算器的小应用程序,进行加减乘等操作。

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多