标签:
两种方法
方法一:
1 /** 2 * @author Jay 3 * @time 2015年7月30日 4 */ 5 public class Singleton { 6 7 //1.将构造方法私有化,外部不能创建实例 8 private Singleton(){ 9 } 10 11 //2.创建类的唯一实例 12 private static Singleton instance = new Singleton(); 13 14 15 //3.提供一个用于获取实例的方法 16 public static Singleton getInstance(){ 17 return instance; 18 } 19 }
方法二:
1 /** 2 * @author Jay 3 * @time 2015年7月30日 4 */ 5 public class Singleton2 { 6 7 //1.将构造方法私有化,外部不能创建实例 8 private Singleton2(){ 9 } 10 11 // 2.创建类的唯一实例 12 private static Singleton2 instance; 13 14 // 3.提供一个用于获取实例的方法 15 public static Singleton2 getInstance(){ 16 if(null == instance){ 17 instance = new Singleton2(); 18 } 19 return instance; 20 } 21 }
测试:
1 /** 2 * 单列模式 3 * @author Jay 4 * @time 2015年7月30日 5 */ 6 public class Test { 7 public static void main(String[] args) { 8 // 方法一 9 Singleton s1 = Singleton.getInstance(); 10 Singleton s2 = Singleton.getInstance(); 11 System.out.println(s1==s2); 12 13 // 方法二 14 Singleton2 s3 = Singleton2.getInstance(); 15 Singleton2 s4 = Singleton2.getInstance(); 16 System.out.println(s3==s4); 17 } 18 }
标签:
原文地址:http://www.cnblogs.com/scoprion/p/4689260.html