把一个类的一切方法都写成静态就可以了,为什么需要单例?
静态类缺乏可扩展性,而普通类能够方便的重写某些函数从而对类进行定制。
Java Web中的Servlet为什么使用单例?
从Servlet部分开始,框架将处理请求的权限交给程序员。如果框架传给程序员的是单例,那么程序员自己可以很容易的实现多例;而如果框架传给程序员的是多例,那么程序员自己在不需要多例的时候也只得被迫使用多例。
单例效率比多例高。
单例进可攻(实现多例),退可守(保持单例较高效率,避免重复创建对象开销)。
许多库再将逻辑处理权限交给程序员的时候都是通过单例的方式,这是一种比较良好的设计。
SpringMVC中Controller使用默认使用单例,但是可以配置成多例。Struts中Action默认是多例,无论如何无法弄成单例(即便你真的不需要多例)。