Java設計模式之單例模式實例詳解【懶漢式與餓漢式】
本文實例講述了Java設計模式之單例模式。分享給大家供大家參考,具體如下:
單例模式就是產生一個對象實例,供外外部訪問。
它的應用場景就是在這個類在全局真資源需要統(tǒng)一訪問,否則會造成混亂時,才有必要設計成單例。
懶漢式,就是在使用這個對象時,才去查看這個對象是否創(chuàng)建,如果沒創(chuàng)建就馬上創(chuàng)建,如果已經創(chuàng)建,就返回這個實例。
餓漢式,在加載這個類的時候就先創(chuàng)建好一個對象實例,等待調用。
兩者的優(yōu)缺點也能猜到,使用懶漢式,在反應速度上肯定要比餓漢式慢。
但是這個對象如果不被調用,那就節(jié)省了cpu和內存資源。
模式很簡單,下面給出實例。
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;
}
}
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;
// }
}
測試
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相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
詳解Java編程中final,finalize,finally的區(qū)別
這篇文章主要介紹了詳解Java編程中final,finalize,finally的區(qū)別,這個在Java面試題中簡直是太常見了...需要的朋友可以參考下2015-11-11

