2016-07-28 80 views

回答

1

我使用无状态单例作为策略的实现。无国籍,他们也是线程安全的,测试他们没有问题。

你遇到问题的地方是有状态的单身人士。这导致更多的交互,特别是在多线程上下文中,但是在单线程中单元测试状态单例是一种痛苦(即你必须重置测试之间的状态)。出于这个原因,许多人认为单身人士是可以避免的反模式。

有状态单例更好的方法是使用依赖注入。这样构建组件的代码只创建一个对象,并将其传递给需要它的所有组件。