java单例模式写个计数器_Java 设计模式之单例模式

本文介绍了Java中的单例模式,用于确保一个类只有一个实例,并提供全局访问点。通过举例在线人数计数器,阐述了单例模式的使用场景和优势。文章列举了多种单例模式的实现方式,包括饿汉式、懒汉式、双重检查和静态内部类,以及它们的优缺点。最后,总结了单例模式的应用范围和特点。
摘要由CSDN通过智能技术生成

概念:

单例模式:一个类中只有一个实例。

一个类有且仅有一个实例,并且提供了一个全局的访问点。

使用该模式的起因:

当我们在浏览网站时,有些网站会显示“当前在线人数”。通常,实现这个功能的办法是将登陆的每一个IP存储在一个内存、文件或者数据库中,每多一个IP,就实现“+1”。一般就是用一个方法,比如add(),实现“+1”的功能,比如用“update”语句,先获取数据库中存储的数据,再+1,更新数据库中的数据,,然后保存;显示在页面时,再通过另外的方法获取数据库中的数据即可。但是,当多个用户同时登陆时,如果每一个都要new一个对象,然后再通过“对象.方法名”调用执行add()方法,再将数据存储到数据库中,这样就会导致多个用户无法将实际的用户数据准确的记录到数据库中。所以,把这个计数器设计为一个全局对象(所有人都使用这一个对象,而不是用一个,new一个),所有人都共用同一份数据,就可以避免类似的问题,这就是我们所说的单例模式的其中的一种应用。

同样的,还有其他场景中,也会遇到相似的情景,使用到类似的思路。比如:

1.外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpooler,以避免两个打印作业同时输出到打印机。内部资源:大多数软件都有一个(或多个)属性文件存放系统配置,这样的系统应该有一个对象管理这些属性文件

2. Windows的Task Manager(任务管理器)就是很典型的单例模式(这个很熟悉吧),想想看

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值