黑馬程序員-單例設計模式:“餓漢式”和“懶漢式”

 ——- android培訓java培訓、期待與您交流! ———-

爲什麼要使用單例模式,有什麼優點?

單例模式是基於考慮到產生對象太多,會造成內存浪費而實現的一種模式。
根據是否需要延遲加載,又分爲“餓漢式”和“懶漢式”。

(一)餓漢式

class Single
{
    private static Single instance = new Single();
    private Single(){}
    private static Single getInstance()
    {
        return instance;
    }

}

在類的內部定義一個靜態實例對象,通過靜態方法getInstance獲得該實例對象,保證了該類產生對象的單一化,不需要每次都開闢內存空間,new新的對象,節約了內存空間。

(二)懶漢式

class Single
{
    private static Single instance = null;
    private Single(){}
    private static Single getInstance()
    {
        if(instance==null)
        {
            synchronized(Single.class)
            {
                if(instance==null)
                    instance = new Single();
            }
        }
        return instance;
    }
}

懶漢式是定義了一個對象,在需要時才進行實例化,形成一個延時加載。
以上代碼:
1)通過同步代碼塊,保證了單例特性,避免了多線程操作時出現安全隱患。
2)通過雙重判斷,有效地解決了執行效率的問題。

發佈了32 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章