单例模式--静态内部类

静态内部类是一个很好的实现单例的方式:


看代码:

package cn.liz.syn;

public class StaticInner {
	// 私有化 构造器
	private StaticInner(){
		
	}
	// 私有的静态内部类 
	private static class Inner{
		static StaticInner single = new StaticInner(); 
	}
	// 公共的 获取实例的方法
	public static StaticInner getInstance(){
		return Inner.single;
	}

}

测试:


总结:

静态内部类如何保证单例的呢?

和饿汉式类似,通过static保证在只在类加载的时候加载一次,也就是全局只有一份。

另外,如果不调用获取对象的方法,类就不会被加载,也就不会在每次外部类使用的时候就创建外部类对象,实现了懒加载。

另外。枚举中的属性因为都是该类的一个实例,因此配合枚举也是一个实现单例的很好的方法。

猜你喜欢

转载自blog.csdn.net/qq_28385797/article/details/72847410
今日推荐