重学单例模式

最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。 
	第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。
	单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式
	静态内部类方式:
package test.pattern.singleton.statics;

public class Singleton {

	//静态内部类保证唯一性
	private static class Inst {
		private static Singleton instance = new Singleton();
	}
	
	public static Singleton instance() {
		return Inst.instance;
	}
	
	private Singleton() {}
	
	public void print() {
		System.out.println("hello world");
	}
}

  枚举实现方式:
package test.pattern.singleton.enums;

public enum SingletonEnum {
    instance; //唯一的实例
	
	private SingletonEnum() {}
	
	public void print() {
		System.out.println("hello world");
	}
}

 
 测试:
package test.pattern.singleton.enums;

import org.junit.Test;

import test.pattern.singleton.statics.Singleton;

public class TestSingle {

	
	
	@Test
	public void testStaticSingle() {
		Singleton single = Singleton.instance();
		single.print();
	}
	
	@Test
	public void testEnumSingle() {
		SingletonEnum.instance.print();
	}
}

 

你可能感兴趣的:(单例,Singleton,模式)