服务的单例/静态类

Zma*_*ter 5 service singleton

我有一个应用程序,它有一些处理某些特定功能的类,其生命周期与应用程序本身相同,并且可用于程序的许多部分.由于这最后一个原因,我称之为服务.例如,音频服务播放音频文件并执行许多与音频相关的事情.

Theese类只在应用程序启动时实例化一次,每种类型有多个没有任何意义.

因为我已经在SO上阅读了很多关于单身人士的答案而不鼓励他们使用,所以我继续在需要时传递对thoose服务的引用.随着项目的不断发展,我发现自己有许多类需要在构造函数上提供服务引用,在某些情况下甚至需要对这些服务进行外观以避免添加所有服务引用.

我想我做错了.我认为这应该是静态/单例类的一个很好的用途.

这是正确的方法吗?

Mik*_*e G 1

我看到一个答案建议引入 Spring。在幕后,Spring 仍在需要的地方传递该引用。

与其在应用程序中引入新的框架,为什么不直接使用单例呢?如果它能完成工作并且比传递服务引用更容易维护,我会说使用它。

如果您担心单例是因为它们对可测试性的影响,请使用依赖注入(模式,而不是框架)来减少与实现的耦合。