初学者学Java设计模式(一)------单例设计模式

                单例设计模式

单例设计模式是指一个类只会生成一个对象,优点是他可以确保所有对象都访问唯一实例。

具体实现代码如下:

实现方式一:

public class Singleton {
	private static Singleton sing = new Singleton();
	private Singleton(){}
	public static Singleton  getInstance(){
		return sing;
	}
}

实现方式二:

public class Singleton {
	private static Singleton sing = null;
	private Singleton(){}
	public static Singleton  getInstance(){
		if(sing == null){
			sing = new Singleton();
		}
		return sing;
	}
}



至于这个程序为什么可以只生成一个对象,我们就要说一说我们为什么这么写这个程序了,首先当我们要生成对象的时候,第一件事就是掉用这个类的构造方法,只要一个类的构造方法可以被外界所调用,那么就可以生成无数个该类的对象。所以我们第一件事就是将构造方法用private私有化。但此时我们的类一个对象也生成不出来了。这时我们又在类的内部写了一条语句:

	private static Singleton sing = new Singleton();

有了这条语句我们就可以生成了一个对象,但是是在类的内部,我们为了把他取出来,我们写了getInstance()
方法,所以就有了我们以上的程序,说完大家就应该可以明白为什么他可以只生成一个对象了,这就是单例设计模式。第一种方式和第二种实现方式的区别在于,第二种实现方式是一种延迟加载的方式,可以不用在使用这个类的时候立马创建这个对象,不过这种实现方式不保证在并发情况下对象是单例的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值