1、什么是单例设计模式
单例设计模式就是解决一个类在内存中只有一个对象。
想要保证对象唯一:
(1)为了避免其他程序过多的建立该类对象,选控制其他程序建立该类对象
(2)为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
(3)为了方便其他程序对自定义对象访问,可以对外提供一些访问方式
2、单例设计模式的种类
种类一:饿汉式
/**
* 单例设计模式--饿汉式
*/
class SingleHungry
{
//将构造函数私有化
private SingleHungry(){};
//在类中创建一个本类的对象
private static SingleHungry s=new SingleHungry();
//提供一个方法可以获取到该对象
public static SingleHungry getInstance()
{
return s;
}
}
种类二:懒汉式
/**
* 单例设计模式--懒汉式(对象的延迟加载)
*/
public class SingleLazy {
//私有化对象s指向空
private static SingleLazy s=null;
//将构造函数私有化
private SingleLazy(){};
//提供一个方法获取到该类的对象
public static SingleLazy getInstance(){
//如果对象是空,建立一个对象
if(s==null)
s=new SingleLazy();
return s;
}
}
种类三:懒汉式的升级版
/**
* 单例设计模式--懒汉式(对象的延迟加载)的升级版
*/
public class SingleLazyImprove {
//私有化对象s指向空
private static SingleLazyImprove s=null;
//将构造函数私有化
private SingleLazyImprove(){};
//提供一个方法获取到该类的对象
public static SingleLazyImprove getInstance()
{
//用双层判断来加锁
if(s==null)
{
synchronized(SingleLazyImprove.class)
{
if(s==null)
s=new SingleLazyImprove();
}
}
return s;
}
}