国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.Net 單例模式(Singleton)

2024-07-10 12:45:04
字體:
來源:轉載
供稿:網友
每臺計算機可以有若干個打印機,但只能有一個Printer Spooler, 以避免兩個打印作業同時輸出到打印機中。每臺計算機可以有若干傳真卡,但是只應該有一個軟件負責管理傳真卡,以避免出現兩份傳真作業同時傳到傳真卡中的情況。每臺計算機可以有若干通信端口,系統應當集中管理這些通信端口,以避免一個通信端口同時被兩個請求同時調用。

問題描述:

        單例模式 Singleton Pattern

問題解決:

(1)單例模式簡介:

Singleton模式要求一個類有且僅有一個實例,并且提供了一個全局的訪問點。這就提出了一個問題:如何繞過常規的構造器,提供一種機制來保證一個類只有一個實例?客戶程序在調用某一個類時,它是不會考慮這個類是否只能有一個實例等問題的,所以,這應該是類設計者的責任,而不是類使用者的責任。

單例模式特點:

    (1.1)一個類有且僅有一個實例

    (1.2)類提供一個全局的訪問點

        (2)單例模式的實現:

(2.1)簡單實現:

clipboard

上述實現的優點:

          (1)直到對象要求時,才進行實例的初始化,這種實現方法稱為:“惰性實例化”,惰性實例化,避免了程序啟動時創建不必要的Singleton。

上述實現的缺點:

           (1)這種實現對于多線程環境并不安全,可能實例化多個對象,例如可能存在兩個線程進行instance==null的判斷,然后創建兩個單例對象,這就違背了單例模式的設計意圖。

    (2.2)安全的線程:

clipboard

以上的實現保證了單例對象在多線程的情況下只會創建一個,但是padlock增加了額外的開銷

    (2.3)雙重鎖定

clipboard

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘南县| 温泉县| 台江县| 曲阜市| 天门市| 赣榆县| 兰溪市| 军事| 临颍县| 翁牛特旗| 环江| 永春县| 厦门市| 拜泉县| 雅安市| 铜陵市| 木兰县| 安塞县| 济阳县| 抚宁县| 农安县| 中江县| 大同县| 济阳县| 新乡县| 武威市| 元江| 合水县| 湟中县| 从江县| 雷州市| 和平县| 永德县| 襄城县| 澎湖县| 高州市| 壤塘县| 阳江市| 临颍县| 来凤县| 克东县|