单例设计模式
1.概述
单例设计模式:解决一个类在内存中只存在一个对象
1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象
2.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
这三步怎么用代码体现呢?
1.将该类构造函数私有化
2.在类中创建一个本来对象
3.提供一个方法可以获取到该对象
2. 单例设计模式的两种实现方式
**饿汉式**:一进内存 就创建了对象
class single{
private single(){}
private static single s=new single();
public static single getInstance(){
return s;
}
}
public class SingleDemo {
public static void main(String[] args) {
single ss=single.getInstance();
}
}
**懒汉式**:什么时候调用什么时候创建对象,对象的延时加载
class single {
private single() {}
private static single s = null;
public static single getInstance() {
if (s == null) {
synchronized (Single.class)//同步锁
{
if (s == null) {
s = new single()
}
}
}
return s;
}
}
public class SingleDemo {
public static void main(String[] args) {
single ss = single.getInstance()
}
}
3. 单例模式的优点
- 只有一个实例: 减少了内存开支
- 只有一个实例: 减少了系统性能开销
- 单例模式可以避免对资源的多重占用