避免将配置类作为Singleton

时间:2014-12-13 11:08:04

标签: c++ proxy singleton

我需要使用一种 Configuration 类,它可用于其他几种类。其中一部分是使用 Configuration 来读取值,其中一些正在改变它们。

什么是重要的 - 所有"阅读"类必须保持最新的配置。意味着什么 - 所有这些都在观察 Configuration 实例。

第一种方法 - 使用Singleton模式。然后 Configuration 在所有其他类中保持一致。

enter image description here

不幸的是,很难测试这些类。我想避免在Singleton和我的应用程序的其余部分之间进行耦合。这是我的新方法:

enter image description here

* ConfigurationProxy是在每个类创建的,它是唯一一个,它与 Configuration

相结合

有没有更好的方法来避免与这样的单身人士联系?

1 个答案:

答案 0 :(得分:1)

  

有没有更好的方法来避免与这样的单身人士联系?

是的,没有单身人士。

这就是我避免全局变量的一个原因(无论你是否用一些奇怪的反模式伪装它们)。您将代码绑定到特定对象,并且无法在没有该对象的情况下进行测试。

只需为配置定义一个抽象接口,并将其传递给需要它的所有内容。你的测试提供了一个存根;您的真实程序提供了真实的配置。