将大量变量添加到已经很大的 class
Adding a large number of variables to an already large class
目前正在处理一个庞大的 java class 现有应用程序。
这个class的初始化从properties文件中读入了大量的设置来填充大量的变量。
正在实施新功能,这需要在另外十几个变量中读取另外十几个属性。
一种选择是只添加变量和关联的 getter/setter 调用。
我考虑的另一个选择是实现内部 class 并让构造函数接受对属性文件的引用。然后它可以使用引用来填充所有属性。这个内部 class 将容纳相关的 getter/setter 调用。
为了尽量减少混乱,推荐使用这种 class 的方法是什么?
这是一个自以为是的问题,但我会尝试将 class 拆分为多个 class。如果你真的需要 class,在同一个包中创建几个新的 classes 并在其中进行初始化,从 "main" [=20] 的构造函数中传入属性对象=].这样,您将拥有配置值的所有吸气剂,从而有效地创建组合外观。
这可能是这样的:
public class Configuration {
private DBConfiguration dbConfiguration;
public Configuration() {
Properties props = readPropertiesFile();
dbConfiguration = new DBConfiguration(props);
}
public String getConnectionString() {
return dbConfiguration.getConnectionString();
}
}
[更新] 除了拥有更简洁的代码外,它还允许您优雅地 @deprecate
Configuration
class 中的方法并慢慢切换到更专业的配置 classes.
目前正在处理一个庞大的 java class 现有应用程序。 这个class的初始化从properties文件中读入了大量的设置来填充大量的变量。
正在实施新功能,这需要在另外十几个变量中读取另外十几个属性。
一种选择是只添加变量和关联的 getter/setter 调用。
我考虑的另一个选择是实现内部 class 并让构造函数接受对属性文件的引用。然后它可以使用引用来填充所有属性。这个内部 class 将容纳相关的 getter/setter 调用。
为了尽量减少混乱,推荐使用这种 class 的方法是什么?
这是一个自以为是的问题,但我会尝试将 class 拆分为多个 class。如果你真的需要 class,在同一个包中创建几个新的 classes 并在其中进行初始化,从 "main" [=20] 的构造函数中传入属性对象=].这样,您将拥有配置值的所有吸气剂,从而有效地创建组合外观。
这可能是这样的:
public class Configuration {
private DBConfiguration dbConfiguration;
public Configuration() {
Properties props = readPropertiesFile();
dbConfiguration = new DBConfiguration(props);
}
public String getConnectionString() {
return dbConfiguration.getConnectionString();
}
}
[更新] 除了拥有更简洁的代码外,它还允许您优雅地 @deprecate
Configuration
class 中的方法并慢慢切换到更专业的配置 classes.