本文實例講述了Java設計模式之單例模式。分享給大家供大家參考,具體如下:
單例模式就是產生一個對象實例,供外外部訪問。
它的應用場景就是在這個類在全局真資源需要統一訪問,否則會造成混亂時,才有必要設計成單例。
懶漢式,就是在使用這個對象時,才去查看這個對象是否創建,如果沒創建就馬上創建,如果已經創建,就返回這個實例。
餓漢式,在加載這個類的時候就先創建好一個對象實例,等待調用。
兩者的優缺點也能猜到,使用懶漢式,在反應速度上肯定要比餓漢式慢。
但是這個對象如果不被調用,那就節省了cpu和內存資源。
模式很簡單,下面給出實例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package org.test.design.single; /** * 懶漢式,單例模式 * @author lushuaiyin * */ public class Loon { public static Loon loon= null ; public static Loon getInstance(){ if (loon== null ){ loon= new Loon(); } return loon; } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package org.test.design.single; /** * 餓漢式,單例模式 * @author lushuaiyin * */ public class Hunger { public static Hunger hunger= new Hunger(); public static Hunger getInstance(){ return hunger; } //或者像下面使用 // public static Hunger hunger=null; // static{ // if(hunger==null){ // hunger=new Hunger(); // } // } // public static Hunger getInstance(){ // return hunger; // } } |
測試
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package org.test.design.single; public class TestMain { /** * @param args */ public static void main(String[] args) { //懶漢式,單例模式 Loon loon=Loon.getInstance(); System.out.println(loon== null ); //餓漢式,單例模式 Hunger hunger=Hunger.getInstance(); System.out.println(hunger== null ); } } |
希望本文所述對大家java程序設計有所幫助。
原文鏈接:http://blog.csdn.net/lushuaiyin/article/details/8917521