黑馬程式設計師 java單例設計模式

2021-06-22 12:11:53 字數 1404 閱讀 7123

---------------------- asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

下面介紹一下單例設計模式。

單例,即單個例項物件。那麼單例設計模式:即解決乙個類在記憶體中只存在乙個物件。

那麼想要保證物件唯一:

1,為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件。

2,還為了其他程式可以訪問到該類物件,只好在本類中,自定義乙個物件。

3,為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。

那麼如何用**來實現上述思路呢?

1,禁止其他程式建立該類物件,即將建構函式私有化即可。

2,在類中建立乙個本類物件。

3,為了使其他物件訪問到該自定義物件,可以提供乙個方法獲取到該物件。

**實現主要有兩種方式:餓漢式,懶漢式。

餓漢式:即先初始化物件。 

餓漢式**實現如下:

class single

//將建構函式私有化

static single s = new single();  //在本類中自定義乙個物件,該s要被靜態方法訪問到,所以要用static修飾

public static single getinstance()

} class singledemo

} 懶漢式:即物件是方法被呼叫時,才初始化,也叫做物件的延時載入。在這裡,指的是,single類進記憶體,  

物件還沒有存在,只有呼叫了getinstance 方法時,才建立物件。

懶漢式**實現如下:

class single

private static single s = null;//這裡暫時先不建立物件。

public static single getinstance()

return s;

} }

但是注意,懶漢式中容易出現安全隱患,所以可以在方法中加乙個鎖,即synchronized.

即public static synchronized single getinstance();

然而,加上乙個鎖之後,程式就變得低效率了。那麼應該怎麼辦呢?

可以進行雙重判斷。

public static single getinstance()

} } }

這樣既可以保證不會出現安全隱患,也保證了效率。但是**有點複雜。

所以,在實際開發過程中,主要還是用餓漢式單例設計模式。

----------------

asp.net+unity開發

、.net培訓

、期待與您交流! --------------

詳情請檢視:www.itheima.com

黑馬程式設計師 java 單例設計模式

單例設計模式解決的問題 保證乙個類在記憶體中的物件唯一性。比如 多程式讀取乙個配置檔案時,建議配置檔案封裝成物件會方便操作其中資料。但需要保證多個程式讀到的是同乙個配置檔案物件,該配置檔案物件在記憶體中是唯一的。如何保證物件唯一性呢?思想以及步驟 1,不讓其他程式建立該類物件。私有化建構函式 2,在...

黑馬程式設計師 java基礎 單例設計模式

單例設計模式 什麼叫設計模式 設計模式指的是解決某一類問題行之有效的解決辦法。單例設計模式是用來解決什麼問題的 單例模式可以保證乙個類的物件唯一性。比如多個程式都要使用同乙個配置檔案中的資料,且要實現資料共享和交換。必須要將資料封裝到乙個物件中,讓不同的程式操作的是同乙個物件。也就是說必須保證這個配...

黑馬程式設計師 單例設計模式

asp.net android io開發s net培訓 期待與您交流!設計要求 1.只能被例項化一次。2.由自己建立例項。3.能向該類任意引用提供上述例項。方式一 餓漢式 class single public static single getinstance 方式二 懶漢式 class sing...