定義:如果一個類始終只能創建一個實例,那么這個類被稱為單例類,這種設計模式被稱為單例模式。
Spring框架里面可以將所有生成的bean對象都設置為單例模式,只需要在配置Bean實例時指定scope=“singleton”即可,或者不做配置默認即為單例模式。
我們可以創建一個小的Demo來演示單例模式的實現,只需要保證該類只能創建一個實例,我們可以用權限修飾符private修飾該類的構造器。
提供一個創建該類的接口,該接口只能用static修飾,類里面創建一個成員變量來保存生成的實例。
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package test; class Anmail{ } class singlelonDemo { private static singlelonDemo sd; private singlelonDemo(){ } public static singlelonDemo single(){ if (sd == null ){ sd = new singlelonDemo(); } return sd; } } public class singleDemo{ public static void main(String[] args){ singlelonDemo sd1 = singlelonDemo.single(); singlelonDemo sd2 = singlelonDemo.single(); System.out.println(sd1==sd2); } } |
輸出結果為true,表示生成的是一個實例。
單例模式是一種應用很廣泛的設計模式,許多框架都有應用,下面要講到的工廠模式里的工廠也只需要單個實例。
使用單例模式的兩個優點:
1、減少創建java實例所帶來的系統開銷。
2、便于系統跟蹤單個java實例的生命周期、實例狀態等。
以上就是java單例模式的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://www.cnblogs.com/blue-wz/p/7291146.html