❌ 停止使用 Singleton。你并不需要它(它正在悄悄伤害你的代码)

发布: (2026年1月16日 GMT+8 14:07)
2 min read
原文: Dev.to

Source: Dev.to

Singleton 的作用

Singleton 确保一个类只有唯一的实例,并且该实例可以全局访问。

Logger.getInstance().log("Hello");

唯一实例。全局访问。

真正的问题

Singleton 其实就是全局状态。
代码的任何部分都可以访问它、修改它、并在不显式声明的情况下依赖它。这会让系统更难理解、测试和修改。

为什么高级工程师会回避它

Singleton 往往导致:

  • 隐蔽的依赖
  • 单元测试困难
  • 状态在请求之间泄漏
  • 类之间的紧耦合

看似便利的做法,往往会在以后变成技术债务。

更好的做法

不要去访问全局对象,而是显式地传递依赖。
这样依赖关系清晰可见,代码更易于测试,系统也更灵活。

一个简单的准则

如果传递依赖让你觉得麻烦,说明应该采用更好的设计——而不是使用 Singleton。

Back to Blog

相关文章

阅读更多 »