Java设计模式之单例模式(枚举式)

package org.changchen.singleton;

public class SingletonDemo04 {

	private SingletonDemo04() {
		super();
	}

	private static class InnerSingleton {
		private static final SingletonDemo04 s = new SingletonDemo04();
	}
	
	public static SingletonDemo04 getInstance(){
		return InnerSingleton.s;
	}

	/**
	 * 静态内部类式
	 * 1.外部类没有static属性,则不会像饿汉式那样立即加载对象
	 * 2.只有真正调用getInstance(),才会加载静态内部类。
	 * 	   加载类时是线程安全的,s是static final 类型,保证了内存中只有这样一个实例存在
	 *   而且只能被赋值一次,从而保证了线程安全
	 * 3.兼备了并发高效调用和延迟加载的优势
	 */
	
}

你可能感兴趣的:(Java设计模式)