注入设置或加载一次全局查找?

时间:2013-02-21 18:10:39

标签: java architecture dependency-injection guice application-settings

仍然掌握良好的依赖注入技术与过度杀伤。思想赞赏。

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

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

  1. 使用单例,然后在构造函数中查找相应的设置
  2. 将不同的设置(或整个设置类)传递到对象树
  3. 创建由Guice模块加载的工厂,然后使用Factory.get()
  4. 我不确定#3比#1好多少......还是完全有更好的方式?

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

1 个答案:

答案 0 :(得分:0)

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