【Java設計模式】java單例模式


解釋一下什么是單例模式:

    單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。在計算機系統中,線程池、緩存、日志對象、對話框、打印機、顯卡的驅動程序對象常被設計成單例。這些應用都或多或少具有資源管理器的功能。每台計算機可以有若干個打印機,但只能有一個Printer Spooler,以避免兩個打印作業同時輸出到打印機中。每台計算機可以有若干通信端口,系統應當集中管理這些通信端口,以避免一個通信端口同時被兩個請求同時調用。總之,選擇單例模式就是為了避免不一致狀態,避免政出多頭。
為什么我要用到單例模式呢?
    就比如,配置文件的讀取類,當一個開着服務一直跑的java程序,它每隔一段時間就要用到配置文件中的參數,你總不能讓程序每次一直new 一個對象出來。最好的辦法就是,一啟動程序的時候new一個對象,然后后面一直用這個對象里面的屬性值就好了。這就要用到單例設計模式了。
 
example:
一、懶漢式單例
public class Singleton {  
    private static class LazyHolder {  
       private static final Singleton INSTANCE = new Singleton();  
    }  
    private Singleton (){}  
    public static final Singleton getInstance() {  
       return LazyHolder.INSTANCE;  
    }  
}  

 

 
二、餓漢式單例
//餓漢式單例類.在類初始化時,已經自行實例化 
public class Singleton1 {
    private Singleton1() {}
    private static final Singleton1 single = new Singleton1();
    //靜態工廠方法 
    public static Singleton1 getInstance() {
        return single;
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM