单实例和多实例应用区别

单实例\color{7DB9D3}单实例

说明:之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;

应用场景

  1. 外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpooler,以避免两个打印作业同时输出到打印机。
  2. 内部资源:大多数软件都有一个(或多个)属性文件存放系统配置,这样的系统应该有一个对象管理这些属性文件。
  3. 网站计数器。
  4. 应用程序的日志应用,由于共享的日志文件一直处于打开状态,因此只能有一个实例去操作,否则内容不好追加。
  5. Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。
  6. 数据库连接池的设计。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗非常昂贵的,因此单例模式来维护,就可以大大降低这种损耗。

多实例\color{7DB9D3}多实例

说明:之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;

应用场景: 对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值