设计模式之单例模式

     设计模式中的单例模式是一个在实际应用中用的比较多的一种设计模式,一般用于连接池,日志文件,配置文件之类的地方。单例单例,即只有一个实例化的对象,首先要做到这一点就不能让外部的类有实例化该类的对象的功能,所以应该将构造函数设为私有,然后在类创建唯一的一个实例,并给一个公有方法来使外部得到实例。

   直接上代码:

/*
 * 单例模式的实现
 */
public class Singleton {
	
	//1.将构造函数私有化,防止外部能实例化该类对象
	private Singleton(){
		
	}
	
	//2.在类中实例化对象,并用private static修饰
	private static Singleton instance=new Singleton();
	
	//3.创建一个公有方法,使得外部能得到唯一的一个实例
	public static Singleton getInstance(){
		return instance;
	}
}
   这是单例模式中饿汉模式的一种实现方式,在外部进行调用时直接就创建了对象,还有一种懒汉模式的实现,如下:

/*
 * 懒汉模式的实现
 */
public class Singleton {
	
	//1.将构造函数私有化,防止外部能实例化该类对象
	private Singleton(){
		
	}
	
	//2.声明一个singleton对象,并用private static修饰
	private static Singleton instance;
	
	//3.判断如果为空就实例化对象,否则直接返回instance
	public static Singleton getInstance(){
		if (instance==null) {
			instance=new Singleton();
		}
		return instance;
	}
}

懒汉模式和饿汉模式的区别在于线程的安全性,也在于一个直接实例化对象,一个只是先声明,然后判断是否存在再实例化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值