A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史晓霞 黑马帝   /  2011-11-9 17:11  /  1718 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么要用到单例,单例的作用用途是什么

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 期待点通俗易懂的哈。

查看全部评分

9 个回复

倒序浏览
{:soso_e103:}没看懂。。
回复 使用道具 举报
Java中用单例模式有什么好处

Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。

我们在浏览BBS、SNS网站的时候,常常会看到“当前在线人数”这样的一项内容。对于这样的一项功能,我们通常的做法是把当前的在线人数存放到一个内存、文件或者数据库中,每次用户登录的时候,就会马上从内存、文件或者数据库中取出,在其基础上加1后,作为当前的在线人数进行显示,然后再把它保存回内存、文件或者数据库里,这样后续登录的用户看到的就是更新后的当前在线人数;同样的道理,当用户退出后,当前在线人数进行减1的工作。所以,对于这样的一个需求,我们按照面向对象的设计思想,可以把它抽象为“在线计数器”这样一个对象。

网站代码中凡是用到计数器的地方,只要new一个计数器对象,然后就可以获取、保存、增加或者减少在线人数的数量。不过,我们的代码实际的使用效果并不好。假如有多个用户同时登录,那么在这个时刻,通过计数器取到的在线人数是相同的,于是他们使用各自的计数器加1后存入文件或者数据库。这样操作后续登陆的用户得到的在线人数,与实际的在线人数并不一致。所以,把这个计数器设计为一个全局对象,所有人都共用同一份数据,就可以避免类似的问题,这就是我们所说的单例模式的其中的一种应用。

单例模式能够保证一个类仅有唯一的实例,并提供一个全局访问点。


百度到的 可以参考下

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
自己也想了解点。Java中单例模式,学习。
回复 使用道具 举报
单例的设计模式,就是只能生成一个实例对象,也就是一一对应的,如你的银行卡只能你来使用,这就是单例的好处!
回复 使用道具 举报
单例的设计模式就是只能生成一个实例对象,当有实例对象就不能再生成新的对象了!也就是所谓的一一对应!如一个银行卡,你使用的时候,别人还能使用嘛?显然不能的!所以就用单例!在你用这张银行卡得时候,别人不能用!这就是单例的好处
回复 使用道具 举报
单例的设计模式是只能生成一个实例对象的!当在堆内有这个实例对象的话,就不能再次生成一个实例对象,就像一张银行卡,你正在用,别人能用么?显然是不能的,所以就应该用单例,这就是单例模式的好处,还有就是因为它只能生成一个实例对象,所以不会浪费内存空间!
回复 使用道具 举报
单例的设计模式是只能生成一个实例对象的!当在堆内有这个实例对象的话,就不能再次生成一个实例对象,就像一张银行卡,你正在用,别人能用么?显然是不能的,所以就应该用单例,这就是单例模式的好处,还有就是因为它只能生成一个实例对象,所以不会浪费内存空间!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马