中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Singleton模式有哪些優點

發布時間:2022-01-13 17:16:26 來源:億速云 閱讀:170 作者:iii 欄目:大數據

今天小編給大家分享一下Singleton模式有哪些優點的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Singleton模式有許多優點:
1) 對唯一實例的受控訪問

因為Singleton類封裝它的唯一實例,所以它可以嚴格的控制客戶怎樣以及何時訪問它。

對于數據的訪問控制,一般都要解決哪個數據,什么時候被訪問的問題。這兩個問題中,那個數據的問題更加重要。單例模式保證只有一個可供使用的實例,剩下的監控就變得很簡單。

2) 縮小名空間

Singleton模式是對全局變量的一種改進。它避免了那些存儲唯一實例的全局變量污染名空間。

從執行層面來講全局變量和單例具有相近的特征,但是在編譯(編碼)層面有很大的不同。實例通過Singleton的類方法取得,這種用法不會象全局變量那樣占有變量名。

3) 允許對操作和表示的精化

Singleton類可以有子類,而且用這個擴展類的實例來配置一個應用是很容易的。你可以用你所需要的類的實例在運行時刻配置應用。

精化這個詞原文是refinement,在這里應該是細化,具體化的意思。Singleton返回的雖然是基類類型,但是由于實際創建對象的處理被封裝在類的內部,所以可以很方便的在生成實例時返回特定子類的對象。

4) 允許可變數目的實例

這個模式使得你易于改變你的想法,并允許Singleton類的多個實例。此外,你可以用相同的方法來控制應用所使用的實例的數目。只有允許訪問Singleton
實例的操作需要改變。

也許設計者在最開始設想該類只有一個實例,但是后來想法變了。這時只要保證允許訪問的對象只有一個,還是可以使用單例模式。這種程度變化不會對使用者造成影響。

5) 比類操作更靈活

另一種封裝單件功能的方式是使用類操作(即C++中的靜態成員函數或者是Smalltalk中的類方法)。但這兩種語言技術都難以改變設計以允許一個類有多個實例。此外,C++中的靜態成員函數不是虛函數,因此子類不能多態的重定義它們。

雖然也可以使用類操作(靜態函數)的方式實現單例模式相同的功能,但是由于難以實現多個實例和重新定義操作,還是優先選用單例模式吧。

以上就是“Singleton模式有哪些優點”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永城市| 邹平县| 烟台市| 大理市| 苍溪县| 齐河县| 景东| 唐河县| 彰化市| 封开县| 广河县| 德安县| 鹤峰县| 三穗县| 图片| 宁安市| 阜阳市| 安顺市| 大足县| 湾仔区| 隆尧县| 柏乡县| 子洲县| 青神县| 民权县| 沁水县| 两当县| 许昌市| 常山县| 阿克苏市| 德江县| 三门县| 杂多县| 绩溪县| 湘西| 阳西县| 海安县| 松滋市| 海晏县| 密山市| 东山县|