单例模式

两种方法

 

方法一:

 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 }
View Code

方法二:

 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 }
View Code

 

测试:

 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 }
View Code

 

posted on 2015-07-30 14:31  羽落残殇  阅读(125)  评论(0)    收藏  举报

导航