天天看點

《Android 源碼設計模式解析與實戰》——第2章,第2.4節單例模式UML類圖

本節書摘來自異步社群《android 源碼設計模式解析與實戰》一書中的第2章,第2.4節單例模式uml類圖,作者 何紅輝 , 關愛民,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

2.4 單例模式uml類圖

uml類圖如圖2-1所示。

《Android 源碼設計模式解析與實戰》——第2章,第2.4節單例模式UML類圖

角色介紹:

(1)client——高層用戶端;

(2)singleton——單例類。

實作單例模式主要有如下幾個關鍵點:

(1)構造函數不對外開放,一般為private;

(2)通過一個靜态方法或者枚舉傳回單例類對象;

(3)確定單例類的對象有且隻有一個,尤其是在多線程環境下;

(4)確定單例類對象在反序列化時不會重新建構對象。

通過将單例類的構造函數私有化,使得用戶端代碼不能通過new的形式手動構造單例類的對象。單例類會暴露一個公有靜态方法,用戶端需要調用這個靜态方法擷取到單例類的唯一對象,在擷取這個單例對象的過程中需要確定線程安全,即在多線程環境下構造單例類的對象也是有且隻有一個,這也是單例模式實作中比較困難的地方。

繼續閱讀