标签:实现 singleton 静态 single 调用 图解 mic bsp 多资源
定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例
Singleton类称为单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行实例化的
由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象频繁的创建、销毁时,并且创建或销毁时性能无法优化,单例模式的优势就非常明显了
单例模式一般没有接口,扩展很困难。另外单例模式与单一职责原则有冲突,一个类应该只实现一个逻辑,而不关心它是否是单例的
1.要求生成唯一序列号的环境
2.在项目中需要一个共享访问点或共享数据时,如一个Web页面上的计数器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的
3.创建一个对象需要消耗过多资源,如要访问IO和数据库等资源
4.需要定义大量的静态常量和静态方法的环境,可以采用单例模式
1.注意单例模式的线程安全的问题,尤其是在高并发的情况下
2.要考虑对象的复制情况。在java中对象默认是不可以被复制的,若实现了Cloneable接口,并实现了clone方法,则是可以通过对象复制方式创建一个新对象,对象复制是不需要调用类的构造函数,因此即使是私有的构造函数,对象仍然可以被复制
在Spring中,每个Bean默认都是单例的,这样的优点是Spring容器可以管理Bean的生命周期,决定什么时候创建,什么时候销毁,销毁的时候需要做什么处理等等
标签:实现 singleton 静态 single 调用 图解 mic bsp 多资源
原文地址:https://www.cnblogs.com/lyc-code/p/12384570.html