小编典典

单例模式有什么不好呢?

design-pattern

单例模式是一个缴足成员四人帮的模式书,但最近似乎而是由开发者世界孤立。我仍然使用很多单例,尤其是对于工厂类,尽管您必须对多线程问题(实际上是任何类)有所注意,但我看不出它们为什么如此糟糕。

堆栈溢出似乎特别假设每个人都同意Singletons是邪恶的。为什么?

请以“ 事实,参考或特定专业知识 ” 支持您的回答


阅读 317

收藏
2020-07-30

共1个答案

小编典典

布赖恩·巴顿(Brian Button)的释义:

  1. 它们通常用作全局实例,为什么这么糟?因为您在代码中隐藏了应用程序的依赖关系,而不是通过接口公开它们。使某些东西全局化以避免传递它是一种代码味道

  2. 他们违反了单一责任原则:由于他们控制自己的创作和生命周期。

  3. 它们固有地导致代码紧密耦合。在许多情况下,这使得将它们伪装成测试对象相当困难。

  4. 它们在应用程序的整个生命周期中都带有状态。测试的另一个问题是,您可能会遇到需要订购测试的情况,这对于单元测试来说是一个很大的不。为什么?因为每个单元测试都应该彼此独立。

2020-07-30