您好,登錄后才能下訂單哦!
這篇文章主要介紹“在什么情況下可以使用Singleton模式”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“在什么情況下可以使用Singleton模式”文章能幫助大家解決問題。
適用性
在下面的情況下可以使用Singleton模式
? 當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時。
這句話的翻譯有一點點問題,還是看英文原文:
there must be exactly one instance of a class, and it must be accessible
to clients from a well-known access point.
作者認為應該這樣翻譯:當類只能有一個實例而且要求這個實例可以通過一個清晰簡明的訪問點訪問時。
? 當這個唯一實例應該是通過子類化可擴展的,并且客戶應該無需更改代碼就能使用一個擴展的實例時。
英文原文
when the sole instance should be extensible by subclassing, and clients
should be able to use an extended instance without modifying their code.
作者的譯法:當這個唯一的實例需要通過子類擴展,而且要求客戶不需要修改代碼就可以使用這個擴展的的實例時。
結構
估計這是《設計模式》一書中最簡單的類圖了。但即便如此,這個圖仍然可以簡化:真正必須的只有2個靜態成員。
參與者
? Singleton
— 定義一個Instance操作,允許客戶訪問它的唯一實例。 Instance是一個類操作(即Smalltalk中的一個類方法和C++中的一個靜態成員函數)。
類操作這個詞時相對于實例操作而言的,C++中就是靜態成員函數。
— 可能負責創建它自己的唯一實例。
也可能時使用實現定義好的(例如全局變量)實例。
協作
? 客戶只能通過Singleton的Instance操作訪問一個Singleton的實例。
關于“在什么情況下可以使用Singleton模式”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。