单例设计模式

代码里看到了单例模式写的不对,现在来梳理一下单例设计模式的书写思想和步骤。

单例设计模式的来源:解决频繁使用的类在内存中只存在一个对象。

目的:保证对象的唯一性,但不符合单一职责原则。

分析:

1.为了避免其他程序过多建立本类对象,先禁止其他程序建立该类对象;

2.要保证其他程序可以访问到本类对象,只要在该类中自定义一个对象;

3.要让其他程序方便对本类对象的访问,可以在该类中暴露出一些访问方式;

实现:

1.将构造函数私有化;

2.创建一个本类对象;

3.提供一个方法可以获取到该对象;

代码 

	class Single {//直接加载对象
		private Single(){}
		private static Single s = new Single();
		public static Single getInstance(){
			return s;
		}
	}
	class Single{//延迟加载对象
	private Single(){}
	private volatile Static Single s = null;//加入volatile保证single的可见性
	public static Single getInstance(){
	if(s == null){//第一次判断空是为了避免不必要的同步
		synchronized(Single.class){
		if(s == null)//第二次判断空是为了防止其他代码进入同步代码块
			s = new Single();
				}
			}
		return s;
		}
	}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值