c++ - 避免配置类为单例

标签 c++ proxy singleton

我需要使用一种Configuration 类,它被用于其他几个。其中一部分使用配置 来读取值,其中一些正在更改它们。

重要的是 - 所有“读取”类都必须与配置保持同步。什么意思 - 他们都在观察配置实例。

第一种方法——使用单例模式。然后配置在所有其他类中保持一致。

enter image description here

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

enter image description here

*ConfigurationProxy 在每个类中创建,并且是唯一一个,与Configuration

有没有更好的办法避免与这样的单例耦合?

最佳答案

Is there a better way to avoid coupling with such a Singleton?

是的,没有单例。

这就是我避免使用全局变量的原因之一(无论您是否使用一些奇怪的反模式来伪装它们)。您将代码绑定(bind)到特定对象,没有该对象就无法对其进行测试。

只需为配置定义一个抽象接口(interface),并将其传递给所有需要它的东西。您的测试提供了一个 stub ;您的真实程序提供了真实的配置。

关于c++ - 避免配置类为单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458125/

相关文章:

batch-file - 在两个代理之间切换的批处理脚本

c# - 对 Lazy<T> 单例代码的修改

java - 在java单例中获取内部类的实例

c++ - 如何从 TMXObjectGroup 读取对象自定义属性?

c++ - 如何处理错误的数据类型输入

c++ - Xcode 中的 C\C++ 构建链接器错误

c++ - g++ -fno-enforce-eh-specs - 为什么/如何违反 C++ 标准?

spring - 使用 httpClient 将代理信息和基本身份验证添加到 Resttemplate

android - Android 处理 SSL 的代理服务器

django - 带有fastcgi和线程的Django