/*
单例设计模式:
保证内存中只有一个类对象的存在。
场景:
多个应用程序使用同一配置信息对象时,就需要保证对象在内存中的唯一性
如何保证对象的唯一性?
思路:
1. 不允许其他程序用new来创建对象;
2. 在该类中创建一个本类对象;
3. 对外提供一个方法,让其它程序通过该方法来获取创建好的对象;
步骤:
1. 将构造函数私有化
2. 通过new创建一个本类对象
3. 定义一个公有的方法,将创建好的对象返回
*/
/*
饿汉式
*/
class SingleInstance
{
/*
保证s的对象在内存中唯一
*/
private static SingleInstance s = new SingleInstance();
/*
将该类的构造方法私有化,阻止对象被实例化
*/
private SingleInstance()
{
}
/*
提供方法给调用者返回对象
*/
public static SingleInstance getInstance()
{
return s;
}
}
/*
懒汉式
*/
class SingleInstance
{
private static SingleInstance s = null;
private SingleInstance()
{
}
public static SingleInstance getInstance()
{
if(s == null)
{
s = new SingleInstance();
}
return s;
}
}
/*
饿汉式和懒汉式都可以实现单例的设计,但是懒汉式存在线程安全问题,
在开发的过程中根据情况选择采用的方式;
*/
单例设计模式饿汉式内存图解: