我有一个 A 类,它获取一个配置文件:
this.getClass().getResource("cfgFile");
现在我创建了一个需要 A 的 cfgFile 的新类 B。现在我正在做:
A.class.getResource("cfgFile");
但是感觉不太对。
我愿意创建一个新类,比如 ABCfg 并将 cfgFile 添加到它的资源路径中,但我不确定这是最好的方法。
最好的方法是什么?
谢谢阅读!
我有一个 A 类,它获取一个配置文件:
this.getClass().getResource("cfgFile");
现在我创建了一个需要 A 的 cfgFile 的新类 B。现在我正在做:
A.class.getResource("cfgFile");
但是感觉不太对。
我愿意创建一个新类,比如 ABCfg 并将 cfgFile 添加到它的资源路径中,但我不确定这是最好的方法。
最好的方法是什么?
谢谢阅读!
您可以通过将 包装getClass().getResource()
在一个新的静态方法中来封装它A
。这样您就可以灵活地在将来更改实现,而不会影响调用代码。
如果A
在提供配置信息方面有其他责任,那么您最好为此创建一个新类。不过,封装getResource()
调用仍然值得做。
您可能应该创建某种配置类或提供另一种获取配置数据的方法。B 不应该依赖于知道 A 的配置在哪里,甚至它需要 A 的配置。我建议您研究Dependency Injection。
例如,B 可以使用它完成工作所需的配置来构建,而不是让 B 负责知道在哪里可以找到它的配置。后一种方法导致紧密耦合的代码变得越来越难以测试。