仍然掌握良好的依赖注入(inject)技术与过度杀伤的技巧。感谢您的想法。
我有一个应用程序,当它启动时,它会从文件中读取设置。稍后它可能是一个数据库,我已经编写了以依赖注入(inject)(Guice)方式加载设置的部分,这不是问题。这些设置不会因应用程序的正常使用而更改,但在未来的版本中,我可能希望允许用户从 GUI 更改这些设置。
这是实际的问题:我应该如何让代码的各个部分访问这些设置?有些设置仅在对象层次结构的深处才重要,但父对象不需要了解它们。所以我可以:
- 使用单例,然后在构造函数中查找适当的设置
- 将不同的设置(或整个设置类)沿着对象树传递
- 创建由 Guice 模块加载的工厂,然后使用
Factory.get()
我不确定 #3 比 #1 好多少...或者是否有更好的方法?
注意:当我使用 Guice 时,这更多的是一个架构问题,而不是“我如何使用 XXX 框架”问题。因此,即使您不认识 Guice,也不要害怕回答。
最佳答案
如果您使用 CDI,您可以使用“@Singleton”注释您的 Singleton 类,然后将此类的对象注入(inject)到子类属性中。
不知道Guice怎么样。
我认为使用注入(inject)机制来确保只有一个 Property 实例是最好的解决方案。
希望我能帮忙。
关于java - 注入(inject)设置还是加载一次全局查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009325/