一、单例设计模式
1.定义:就是可以保证一个类在内存中的对象唯一性,单例设计模式有两种方式,一种饿汉式(实际开发中用),一种懒汉式(面试中用)
必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
2.如何保证对象唯一性
1)不允许其他程序用new创建该类对象
2)在该类创建一个对象实例
3)对外提供一个方法让其他程序可以过去该对象
3.实现步骤
1)私有化该类构造函数
2)通过new在本类中创建一个本类对象
3)定义一个公有的方法,将创建的对象返回
4.实例演示
//饿汉式,类一加载,对象就已经存在了
class Single
{
static Single s = new Single(); //通过new在本类中创建一个本类对象
private Single(){} //私有化该类构造函数
public static Single getInstance() //定义公有方法,将创建的对象返回
{
return s; //返回该类的对象实例
}
}
//懒汉式,类加载进来,没有对象,只有调用了getInstance()方法,才会创建对象,属于延迟加载的形式。实际开发中,存在安全漏洞,特别是对于多线程而言。
class Single
{
static Single s = null;
private Single(){} //私有化该类构造函数
public static Single getInstance() //定义公有方法,将创建的对象返回
{
if(s == null)
s=new Single();
return s; //返回该类的对象实例
}
}
class SingleDemo
{
public static void main(String[] args)
{
Single ss = Single.getInstance(); //获取对象实例
}
}