java基础(四)-----单例设计模式(一)

        先说一下设计模式,设计模式是对问题行之有效的解决方案。是一种思想,适用于所有几乎所有的计算机语言。来自建筑学。

单例模式是要求内存中只能创建唯一的类的对象,接下来,我将从单例模式的动机,要求,实现三个方面进行说明。

动机

动机,这个词是看到网上的,比较简洁,拿来一用,我没有这么高的归纳能力,说白了,动机就是单例模式索要解决的问题。这个问题就是:要保证内存中只有唯一的一个实例,例如,多个类公用一个配置类,或者是信息类,现实生活中的例子有:一组人公用一台打印机,打印机在一个时间内,只能接受一个打印任务,这时,内存中只能有一个打印任务的对象。

要求

①不允许其他类使用关键字new来创建一个类的实例,因为如果使用new来创建的话,那么对于对象的创建就不可控制。那么就需要私有化构造方法。

②在该类中创建一个实例,注意:该实例要是私有静态的。

   ③对外提供一个静态方法,返回该类的对象给外界。注意:必须是静态方法,因构造函数私有化,必须通过类的静态方法来与外界通信。

实现步骤

①构造函数是优化

②通过new在本类中创建一个私有的对象

③提供一个方法,对外返回该对象。

按照对象创建的时机,单例又分为饿汉式和懒汉式

饿汉式:

//饿汉式
class Single
{
	//只要类一加载,对象就已经存在
	private static Single s =new Single();
	private Single()
	{
		
	}
	
	public static Single getInstance()
	{
		return s;
	}
}
懒汉式:

//懒汉式
class Single2
{
	//单例模式的延迟加载形式
	private static Single2 s=null;
	
	private  Single2()
	{
		
	}
	
	public static Single2 newInstance()
	{
		if(s==null)
		{
			s=new Single2();
			
		}
		return s;
	}
}

over~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值