java单例注册表_Java单例模式(Singleton)

单例模式主要用于:有一些对象我们只需要一个,比如:线程池、缓存、对话框、处理偏好设置、注册表对象、日志对象以及配置文件对象、数据库连接对象等等。单例模式常用于管理共享资源,例如:数据库连接或者线程池。

Java Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利Java垃圾回收(garbagecollection)。

这些对象只能有一个实例,如果制造出多个实例,就会导致很多问题如:程序异常、资源使用过量等。

单例模式很像静态类,它自身有一个全局访问点但是又没有全局变量的缺点:如果将一个对象赋值给一个全局变量,那么你必须在程序一开始的时候就得创建好对象,如果执行过程中没有用到,就会非常耗费资源。

单例模式主要有三个部分:

1.私有构造方法:防止外部实例化,只有内部可以实例化

2.有一全局静态方法:

(1).可以访问私有的构造方法进行实例化。

(2).外部调用静态方法,如果存在singleton实例就返回,如果不存在则创建一个实例.自己进行对实例进行管理.

3.静态变量:利用一个静态变量来记录Singleton的唯一实例。

单例模式的UML非常简单,但是真正用好单例模式,也是有点难度的

a596c426db04043c859e702d0ce61c4b.gif单例模式的源代码如下:

publicclassSingleton{

//利用一个静态变量来记录Singleton类的唯一实例

privatestaticSingleton uiqueInstance;

//把构造函数声明为私有的,外部不可以实例化,只有内部可以实例化

privateSingleton(){

}

//外部通过调用静态方法getInstance(),来获得实例化对象

publicstaticSingleton getInstance(){

//内部自己管理实例,始终保证只有一个实例

if(uniqueInstance ==null) {

//如果没有实例,则创建实例,在类的内部可以访问构造函数,进而实例化

uniqueInstance =newSingleton();

}

//如果已经存在就直接将实例返回就行了

returnuniqueInstance;

}

}0b1331709591d260c1c78e86d0c51c18.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值