单例模式

 1 package cn.sice;
 2 
 3 public class SingleDemo
 4 {
 5 
 6     public static void main(String[] args)
 7     {
 8         Single s = Single.getInstance();
 9     }
10 
11 }
12 
13 class Single
14 {
15     private static Single sin = null;
16 
17     private Single()
18     {
19 
20     }
21 
22     public static Single getInstance()
23     {
24         if (sin == null)
25         {
26             synchronized (Single.class)
27             {
28                 if (sin == null)
29                 {
30                     sin = new Single();
31                 }
32             }
33 
34         }
35         return sin;
36     }
37 }

懒汉式

1,私有,静态要返回的对象

2,私有构造方法,使其不能通过new创建对象

3,使用静态getInstance()方法来获得对象

4,加入同步代码块保证线程安全,锁为.class

5,为了提高效率,在进入同步前,加入null判断

1 class Single
2 {
3     private static final Single s = new Single();
4     private Single(){}
5     public static Single getInstance(){
6         return s;
7     }
8 }

饿汉式

1,引用对象静态 final 修饰

2,私有构造函数

3,静态getInstance()方法

 

posted @ 2014-02-03 20:09  一路向北中  阅读(116)  评论(0)    收藏  举报