2

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

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按钮的动作侦听器,则应调用Util.doA从输入字段作为参数传递的数据,如果 JDialog 属于type B我希望按钮的动作侦听器调用Util.doB等。
类型 A、B 等是我的自定义类型。不强制使用。我只是让他们区分每个JDialog。
A 类型的 JDialog 在某些输入字段中与 B 类型的 JDialog 不同。但整体外观相似。
总共有大约 20 种类型和 20 种相应的 util 方法。
我有这个问题的标准模式吗?
我开始扩展 JDialog,以便每个自定义 JDialog 都能正确创建自己,并且 actionlistener 的方法调用适当的实用程序方法,但我最终得到了 20 个新类。
所以我想如果有更好的方法来解决这个问题。有任何想法吗?

谢谢

4

1 回答 1

2

把对应的util方法放在20种里面。如果类型之间有任何重复,您可以将其移至超类。

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

于 2010-12-07T12:09:51.647 回答