1

仍然掌握良好的依赖注入技术与矫枉过正。想法赞赏。

我有一个应用程序,它在启动时会从文件中读取设置。以后可能是数据库,我已经编写了以依赖注入(Guice)方式加载设置的部分,这不是问题。这些设置不会因应用程序的正常使用而改变,但在未来的版本中,我可能希望允许用户从 GUI 更改这些设置。

这是实际的问题:我应该如何让代码的各个部分访问这些设置?一些设置只在对象层次结构中非常重要,但父对象不需要知道它们。所以,我可以:

  1. 使用单例,然后在构造函数中查找适当的设置
  2. 将不同的设置(或整个设置类)向下传递到对象树
  3. 创建由 Guice 模块加载的工厂,然后使用Factory.get()

我不确定#3 比#1 好多少……还是完全有更好的方法?

注意:当我使用 Guice 时,这更像是一个架构问题,而不是“我如何使用 XXX 框架”问题。因此,即使您不认识 Guice,也不要害怕回答。

4

1 回答 1

0

如果您使用 CDI,您可以使用“@Singleton”注释您的 Singleton 类,并将此类的一个对象注入到子类属性中。
不知道 Guice 怎么样。
我认为使用注入机制来确保只有一个 Property 实例是最好的解决方案。
希望我能帮上忙。

于 2013-02-21T18:20:15.403 回答