什么是单例模式的替代方案?

123
我们有一个保存应用程序配置信息的类。它曾经是单例模式。在进行一些架构审查后,我们被告知要移除单例模式。我们看到不使用单例模式在单元测试中有一些好处,因为我们可以同时测试不同的配置。
没有了单例模式,我们必须在代码的各个地方传递该实例。这变得非常混乱,所以我们编写了一个单例包装器。现在我们正在将相同的代码移植到 PHP 和 .NET,我想知道是否有更好的模式可用于配置对象。
12个回答

0

这取决于使用的工具/框架等。 使用依赖注入/ioc 工具,可以通过让 di/ioc 容器对所需的类(如 IConfigSettings 接口)使用单例行为来实现单例性能/优化,只创建一个类的实例。这仍然可以替换为测试

或者,可以使用工厂创建类并每次请求时返回相同的实例 - 但是为了进行测试,它可以返回存根/模拟版本


0

您可以使用依赖注入框架来简化传递配置对象的痛苦。一个不错的选择是ninject,它具有使用代码而不是xml的优点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接