当前位置:  开发笔记 > Android > 正文

Singleton for Application Configuration

如何解决《SingletonforApplicationConfiguration》经验,为你挑选了2个好方法。

在我迄今为止的所有项目中,我使用单例模式在整个应用程序中访问应用程序配置.最近我看到很多文章都在讨论不使用单例模式,因为这种模式不会提升可测试性,也会隐藏Component依赖性.我的问题是存储应用程序配置的最佳方法是什么,可以在整个应用程序中轻松访问,而无需在整个应用程序中传递配置对象?

提前致谢

马杜



1> tvanfosson..:

我认为应用程序配置是Singleton模式的一个很好的用途.我倾向于自己使用它来防止每次我想要访问它时重新读取配置,因为我喜欢强配置配置(即,不必每次都转换非字符串值).我通常在我的Singleton中构建一些后门方法来支持可测试性 - 即注入XML配置的能力,这样我就可以在我的测试中设置它,并且能够销毁Singleton,以便在需要时重新创建它.通常,这些是我通过反射访问的私有方法,以便它们从公共接口隐藏.

编辑我们生活和学习.虽然我认为应用程序配置是少数使用Singleton的地方之一,但我不再这样做了.通常,现在,我将使用Lazy配置属性的静态支持字段创建接口和标准类实现.这允许我对每个属性进行"初始化一次"行为,并具有更好的可测试性设计.


+1,人们喜欢创造他们的小规则,如"只有一个退出循环"或"不允许单身人士".我更喜欢务实而不是教条,因为教条导致人们无法自己思考.如果只能有一个X对象,则应该只有一个XConfig对象.
拥有配置对象的单个实例很好并且是可取的,但它不会使用Singleton来实现它.在实际的类中使用类似测试特定方法的黑客也不利于干净的代码或测试.

2> ColinD..:

使用依赖注入将单个配置对象注入到需要它的任何类中.通过这种方式,您可以使用模拟配置进行测试或任何您想要的...您没有明确地出去并获得需要使用配置文件初始化的内容.使用依赖项注入时,您不会传递对象.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有