單例模式是一種常用的軟件設計模式。在它的可信結構中只包含一個被實例化單例的特殊類。通過單例設計模式可以把整系統中的一個類只有一個實例。
單例設計模式又分為兩種方式,懶漢式和餓漢式。
(1)懶漢式,就是只有當調用getInstance的時候,才會初始化這個單例。
(2)餓漢式,就是一旦加載好類,就把單例初始化完成。即是調用getInstance的時候,單例是已經存在了。
代碼如下:
懶漢式單例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/** * Description: * 一、設計了一個懶漢式單例 * * @author lee * */ public class SingleMode { public static SingleMode s = null ; /** * Description: * 私有化構造函數 * * */ private SingleMode(){} /** * Description: * 提供一個方法來獲取該單例 * * @return s 返回一個單例 * */ public static SingleMode getInstance(){ //保證了線程安全,又減輕了資源加載和性能上的負擔 //即是在創建一次對象后,不再需要線程鎖了。 if (s== null ){ synchronized ( "" ){ if (s== null ){ s = new SingleMode(); } } } return s; } } |
餓漢式單例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/** * Description: * 二、設計了一個餓漢式單例 * * @author lee * */ class SingleMode1{ public static final SingleMode1 s = new SingleMode1(); /** * Description: * 私有化構造函數 * * */ private SingleMode1(){} /** * Description: * 提供一個方法來獲取該單例 * * @return s 返回一個單例 * */ public static SingleMode1 getInstance(){ return s; } } |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/qq1131410679/article/details/65936312