我和一位同事讨论了以下问题:
我们的项目读入配置文件并存储了许多参数.他将这些数据与每个变量的几十个getter方法一起存储在命名变量中.在我看来,这使得该课程过度使用getter方法并且难以维护.
private var;
public String getVar() {
return var;
}
// This appears dozens of times in the class
......
Run Code Online (Sandbox Code Playgroud)
我的解决方案是将键值对存储在映射中,并使用单个getValue(String key)方法,该方法将表示每个变量的键作为参数.这些键将作为常量列表存储在Config类中,该类还将处理从文件中读取数据.
Config c = new Config();
c.readConfig(someFile);
...
c.getValue(Config.SOME_VAR);
Run Code Online (Sandbox Code Playgroud)
他反对我的设计的论点是,如果任何密钥需要改变或被淘汰,那么密钥的所有实例都必须在源代码中的许多地方被追捕和更改,而在他的设计中,一切都是从1个文件管理的.此外,类型安全性存在问题,因为从getValue()返回的String中的Integer.parseInt()可能会崩溃,而在他的方法中,返回类型是固定的.
有关上述的任何评论?谢谢.
java ×1