Swing 中的 Java 创 build 计模式

标签 java design-patterns swing jdialog

我有一系列这种形式的静态实用方法:

StringBuffer Util.doA(String arg0, String arg1, SomeEnum e);  
StringBuffer Util.doB(String arg0, String arg1);  
StringBuffer Util.doC(String arg0, String arg1, String arg2,String arg3);  
StringBuffer Util.doD(String arg0, String arg1, String arg2,String arg3, AnotherEnum e);  
etc

我想显示动态创建的 JDialog,例如通过构建器或其他模式,一旦按下按钮,我希望根据对话框的类型调用适当的实用程序方法。
例如。如果 JDialog 是 type A 按钮的 actionlistener 应该调用 Util.doA 作为参数从输入字段传递数据,如果 JDialog 是 type B 我想让按钮的actionlistener调用Util.doB
类型 A、B 等是我的自定义类型。不强制使用。我只是用它们来区分每个 JDialog。
A 类型的 JDialog 在某些输入字段中不同于 B 类型的 JDialog。但整体外观相似。
总共有大约20种类型和20种对应的util方法。
我遇到的这个问题有标准模式吗?
我开始扩展 JDialog,以便每个自定义 JDialog 都能正确创建自己,并且 actionlistener 的方法会调用适当的实用程序方法,但我最终得到了 20 个新类。
所以我想是否有更好的方法来解决这个问题。 有什么想法吗?

谢谢

最佳答案

将对应的util方法放在20种里面。如果类型之间存在任何重复,您可以将其移至父类(super class)。

关于您的问题,我认为这是针对您的情况的最佳方法。如果对话框和实用程序代码都在一个类中,仅此而已,那么该类的目的是什么就很清楚了。这也意味着如果您需要删除、更改、添加新类型,您只需删除一个类、修改一个类或创建一个新类。将所有相关代码放在一起可防止“霰弹枪手术”。

关于Swing 中的 Java 创 build 计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376065/

相关文章:

java - 用 Java 解析 CSV 文件

java - 在 JTable (Java Swing) 中显示电子邮件

validation - 带有primefaces的电子邮件模式

java - 如何在 jframe 上使用 Imageicon 打开图像

java - 如何使用java连接MySQL数据库

java - 如何在 Eclipse 中正确设置由 appfuse 创建的多模块 SpringMVC 应用程序?

c# - 接口(interface)或 switch 语句,找到正确的模式

design-patterns - 哪个更邪恶: an unnecessary singleton or a God Object?

java - 如何通过单击 JMenuItem 来执行批处理文件以在 Windows 上重新启动服务?

java - 使用未修饰的 JFrame 时如何添加对调整大小的支持?