Tim*_*eus 5 java constructor arguments
例如,我有一个构建GUI的类,一个处理GUI所有事件的类,以及包含受GUI对象(主要是滑块)影响的所有对象的主类,以及GUI类和事件类.
现在,事件类的构造函数具有GUI类和GUI所更改的每个对象作为参数.这些都是相当多的对象,所以我现在拥有的论据数量大约是8,而且还在增长.
对我的问题有一个更优雅的解决方案,30个参数根本感觉不对吗?
ps,我宁愿不合并类,因为这三个都很大,并且会使一切都变得不那么可读.
Ben*_*igt 12
通常,在这种情况下使用具有流利语法的构建器对象.你改变了:
new XYZEvent(a, null, null, b, null, c, d, null, null)
Run Code Online (Sandbox Code Playgroud)
至
new XYZEventBuilder().setA(a).setB(b).setC(c).setD(d).build()
Run Code Online (Sandbox Code Playgroud)
您可以创建一个配置类来保存所有参数的默认值:
public class GUIConfig {
private String name = "default";
// more private declarations
public GUIConfig() {
// constructor, just for setting defaults
}
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
现在您可以像这样简单地创建 GUI 类实例:
GUIConfig guiConfig = new GUIConfig();
guiConfig.setName("foo");
// more setters
GUI myGUI = new GUI(guiConfig);
Run Code Online (Sandbox Code Playgroud)
或者仅使用默认值:
GUI myGUI = new GUI(new GUIConfig());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1888 次 |
| 最近记录: |