单例设计模式

/*
单例设计模式:
	保证内存中只有一个类对象的存在。
场景:
	多个应用程序使用同一配置信息对象时,就需要保证对象在内存中的唯一性
如何保证对象的唯一性?
思路:
	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;
	}
}

/*
饿汉式和懒汉式都可以实现单例的设计,但是懒汉式存在线程安全问题,
在开发的过程中根据情况选择采用的方式;
*/

单例设计模式饿汉式内存图解:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值