【轉載】Java之單例模式

單例設計模式的目的是使得類的一個對象成爲系統中唯一實例。如何保證對象唯一性呢?

不允許其他程序用new創建該類對象。
在該類創建一個本類實例。
對外提供一個方法讓其他程序可以獲取該對象。

步驟:
(1)私有化該類構造函數。
(2)通過new在本類中創建一個本類對象。
(3)定義一個公有的方法,將創建的對象返回。
方法一——餓漢式

class Single{
    private static Single s = new Single();//直接創建一個該類對象
    private Single(){}
    public static Single getInstance(){
        return s;
    }
}
方法二——懶漢式
class Single
{
    private static Single s = null;
    private Single(){}
    public static Single getInstance()
    {
        if(s==null)//解決多線程中的效率問題
        {
            synchronized(Single.class)//解決多線程中的安全問題 
            {
                if(s==null)
                    s = new Single();
            }
        }
        return s;
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章