我有一系列这种形式的静态实用方法:
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/