2

我有一个 A 类,它获取一个配置文件:

this.getClass().getResource("cfgFile");

现在我创建了一个需要 A 的 cfgFile 的新类 B。现在我正在做:

A.class.getResource("cfgFile");

但是感觉不太对。

我愿意创建一个新类,比如 ABCfg 并将 cfgFile 添加到它的资源路径中,但我不确定这是最好的方法。

最好的方法是什么?

谢谢阅读!

4

2 回答 2

3

您可以通过将 包装getClass().getResource()在一个新的静态方法中来封装它A。这样您就可以灵活地在将来更改实现,而不会影响调用代码。

如果A在提供配置信息方面有其他责任,那么您最好为此创建一个新类。不过,封装getResource()调用仍然值得做。

于 2009-08-06T16:01:54.470 回答
1

您可能应该创建某种配置类或提供另一种获取配置数据的方法。B 不应该依赖于知道 A 的配置在哪里,甚至它需要 A 的配置。我建议您研究Dependency Injection

例如,B 可以使用它完成工作所需的配置来构建,而不是让 B 负责知道在哪里可以找到它的配置。后一种方法导致紧密耦合的代码变得越来越难以测试。

于 2009-08-06T16:32:35.123 回答