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