在多个线程中使用线程安全单例的示例



有线程安全的singleton,但当我们在多个线程中使用singleton时?什么时候可能有用?

我使用无状态singleton作为策略的实现。由于是无状态的,它们也是线程安全的,测试它们没有问题。

你遇到问题的地方是有状态的单身汉。这会导致更多的交互,尤其是在多线程环境中,但仅在一个线程中对有状态的单例进行单元测试是一件痛苦的事情(即,您必须在测试之间重置状态)。出于这个原因,许多人认为单线态是一种需要避免的反模式。

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

最新更新