【发布时间】:2014-10-22 17:11:40
【问题描述】:
我意识到我应该一次只运行一个名为StdSchedulerFactory 的对象的实例。到目前为止,我实例化了这样的对象
StdSchedulerFactory sf = new StdSchedulerFactory(properties);
而属性是NameValueCollection。
如何为这个对象编写一个 Singleton 类,以便变量 sf 在整个程序中始终有一个实例?
【问题讨论】:
-
如果有人实例化了第二个会发生什么?你宁愿不进行适当的单元测试会不会很糟糕?
-
@nvoigt 完全可以对单例进行单元测试,它只需要派生一个接口;然后你可以模拟它来测试其他对象,当你测试 it 时,它是一个单例并不重要。 (请注意,您需要一个 DI 容器才能工作)。
-
@BradleyDotNET 如果您的测试相互影响,您将如何对单例进行单元测试?你会构建一个单一的、整体的测试用例来调用类可以拥有的所有操作吗? (不是说 DI 容器中普通类的单例生命周期,而是真正的私有构造函数单例)
-
@nvoigt 如果存在这种类,我可能不会将其设为单例。如果它确实需要是一个单例,那么是的,“单片”测试最有意义。不理想,但我认为单身人士有时会受到不好的评价。我的代码中有单例,我的单元测试非常合理。
标签: c# design-patterns singleton