单例设计模式核心实现

利用私有化构造方法的方式实现
//该模式下Single类中直接就实例化了对象如果没有使用则会浪费内存空间
public class Singleton {
	public static void main(String args[]) {
		Single s1 = null;
		s1 = Single.getInstance();
		Single s2 = null;
		s2 = Single.getInstance();
		System.out.println("s1----->"+s1);		
		System.out.println("s2----->"+s2);
	}
}
class Single{
	private Single() {}
	static Single instance = new Single();
	public static Single getInstance() {
		return instance;
	}
}
//结果
//s1----->DesignPattern.Single@15db9742
//s2----->DesignPattern.Single@15db9742

虽然声明了两个对象但是这两个对象只在Single中声明了一次;s1,s2只是调用了Single中的实例化对象而已没有自己单独实例化对象;
比如windows下回收站就是一个单例的例子 只实例化一个回收站但是在磁盘每个分区中调用了回收站实例化对象,但其实只有一个回收站

//该模式下Single类中先只声明对象主方法中使用时才实例化
public class Singleton {
	public static void main(String args[]) {
		Single s1 = null;
		s1 = Single.getInstance();
		Single s2 = null;
		s2 = Single.getInstance();
		System.out.println("s1----->"+s1);		
		System.out.println("s2----->"+s2);
	}
}
class Single{
	private Single() {}
	static Single instance;
	public static Single getInstance() {
		
		if(instance==null) {
			instance = new Single();
		}
		return instance;
		
	}
}
//结果
//s1----->DesignPattern.Single@15db9742
//s2----->DesignPattern.Single@15db9742
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值