java物件導向(2)

釋懷355發表於2014-06-14
單例設計模式
解決一個類在記憶體只存在一個物件
想要保證物件唯一:
 1.為了避免其他程式過多建立該類物件。先禁止其他程式建立該類物件
 2.為了讓其他程式可以訪問到該類物件,只好在本類中自定義一個物件
 3.為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。
程式碼中的體現:
1.將建構函式私有化
2.在類中建立一個本類物件
3.提供一個方法可以獲取到該物件

懶漢式和餓漢式
餓漢式:先初始化物件,類一進記憶體,就已經建立好了物件
class Single
{
    private  Single(){}
    private static Single s = new 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;
    }
}



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27026361/viewspace-1182851/,如需轉載,請註明出處,否則將追究法律責任。

相關文章