2009-08-06 69 views
2

的我有一个A级它得到一个配置文件,这样做的:的getResource()其他类

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

现在我创建了一个新的B类谁需要的CFGFILE。现在我做:

A.class.getResource("cfgFile"); 

但它并不适合我。

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

这样做的最好方法是什么?

感谢您的阅读!

回答

1

您应该创建某种配置类或提供另一种获取配置数据的方法。 B不应该依靠知道A的配置在哪里,或者甚至不需要A的配置。我建议你看看Dependency Injection。例如,B可以用它需要完成其工作的配置来构造,而不是让B负责知道在哪里找到它的配置。后一种方法导致紧密耦合的代码变得越来越难以测试。

3

您可以通过将封装在A的新静态方法中来封装它。这样您就可以灵活地在将来更改实现而不影响调用代码。

如果A对提供配置信息负有其他责任,那么最好为此创建一个新类。尽管如此,封装getResource()调用仍然值得一试。