说明:之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;
应用场景
- 外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpooler,以避免两个打印作业同时输出到打印机。
- 内部资源:大多数软件都有一个(或多个)属性文件存放系统配置,这样的系统应该有一个对象管理这些属性文件。
- 网站计数器。
- 应用程序的日志应用,由于共享的日志文件一直处于打开状态,因此只能有一个实例去 *** 作,否则内容不好追加。
- Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。
- 数据库连接池的设计。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗非常昂贵的,因此单例模式来维护,就可以大大降低这种损耗。
说明:之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;
应用场景: 对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)