这个我觉得倒也没有那么好笑,Java里面Singleton用的的确是有点多得离谱了,实际上把一个Singleton类的所有成员(包括字段和方法)都换成静态也没有什么不可以的,用Singleton主要是这样几个优点:
1、Singleton类可以用接口和继承,static不行
2、因此,Singleton类稍微保留了一点多态能力,例如可以有多个实现了同一接口的Singleton类,然后将实例作为参数传给其他接口,用来实现某些设计模式同样
3、因为1,Singleton对依赖注入框架比较友好一点,其他部分的代码可以只依赖接口而非具体的实现类
4、Singleton类可以稍微有一点点生命周期管理功能,也可以稍微管理一下初始化和析构的顺序
能看出我一直都是用“稍微”来形容的,其实大部分场景下这些差异并没有那么本质的区别。要我说,真正的原因还是懒得每个接口都写一遍static吧
确实没啥区别。。
单例类都是xxxHandler或者xxxService,然后传的对象都是pojo的贫血对象(本质就一结构体)