我需要使用一种 Configuration 类,它可用于其他几种类。其中一部分是使用 Configuration 来读取值,其中一些正在改变它们。
什么是重要的 - 所有"阅读"类必须保持最新的配置。意味着什么 - 所有这些都在观察 Configuration 实例。
第一种方法 - 使用Singleton模式。然后 Configuration 在所有其他类中保持一致。
不幸的是,很难测试这些类。我想避免在Singleton和我的应用程序的其余部分之间进行耦合。这是我的新方法:
* ConfigurationProxy是在每个类创建的,它是唯一一个,它与 Configuration
相结合有没有更好的方法来避免与这样的单身人士联系?
答案 0 :(得分:1)
有没有更好的方法来避免与这样的单身人士联系?
是的,没有单身人士。
这就是我避免全局变量的一个原因(无论你是否用一些奇怪的反模式伪装它们)。您将代码绑定到特定对象,并且无法在没有该对象的情况下进行测试。
只需为配置定义一个抽象接口,并将其传递给需要它的所有内容。你的测试提供了一个存根;您的真实程序提供了真实的配置。