我需要使用一种Configuration 类,它被用于其他几个。其中一部分使用配置 来读取值,其中一些正在更改它们。
重要的是 - 所有“读取”类都必须与配置保持同步。什么意思 - 他们都在观察配置实例。
第一种方法——使用单例模式。然后配置在所有其他类中保持一致。
不幸的是,很难测试这些类。我想避免 Singleton 和我的应用程序的其余部分之间的耦合。这是我的新方法:
*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/