C#設(shè)計模式-單例模式.ppt_第1頁
C#設(shè)計模式-單例模式.ppt_第2頁
C#設(shè)計模式-單例模式.ppt_第3頁
C#設(shè)計模式-單例模式.ppt_第4頁
C#設(shè)計模式-單例模式.ppt_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Design Patterns,單例模式,劉 偉 (Sunny) weiliu_,大綱,單例模式概述 單例模式的結(jié)構(gòu)與實(shí)現(xiàn) 單例模式的應(yīng)用實(shí)例 餓漢式單例與懶漢式單例 單例模式的優(yōu)缺點(diǎn)與適用環(huán)境,單例模式概述,Windows任務(wù)管理器,在正常情況下只能打開唯一一個任務(wù)管理器!,單例模式概述,如何保證一個類只有一個實(shí)例并且這個實(shí)例易于被訪問? (1) 全局變量:可以確保對象隨時都可以被訪問,但不能防止創(chuàng)建多個對象 (2) 讓類自身負(fù)責(zé)創(chuàng)建和保存它的唯一實(shí)例,并保證不能創(chuàng)建其他實(shí)例,它還提供一個訪問該實(shí)例的方法,單例模式,單例模式概述,單例模式的定義 對象創(chuàng)建型模式,Only one!,單例模式概述,單例模式的定義 要點(diǎn): 某個類只能有一個實(shí)例 必須自行創(chuàng)建這個實(shí)例 必須自行向整個系統(tǒng)提供這個實(shí)例,單例模式的結(jié)構(gòu)與實(shí)現(xiàn),單例模式的結(jié)構(gòu),單例模式的結(jié)構(gòu)與實(shí)現(xiàn),單例模式的結(jié)構(gòu) 單例模式只包含一個單例角色: Singleton(單例),單例模式的結(jié)構(gòu)與實(shí)現(xiàn),單例模式的實(shí)現(xiàn) 私有構(gòu)造函數(shù) 靜態(tài)私有成員變量(自身類型) 靜態(tài)公有的工廠方法,單例模式的應(yīng)用實(shí)例,實(shí)例說明,單例模式的應(yīng)用實(shí)例,實(shí)例類圖,服務(wù)器負(fù)載均衡器結(jié)構(gòu)圖,單例模式的應(yīng)用實(shí)例,實(shí)例代碼 (1) LoadBalancer:負(fù)載均衡器類,充當(dāng)單例角色 (2) Program:客戶端測試類,演示,參考代碼 (DesignPatternSingletonSample),單例模式的應(yīng)用實(shí)例,結(jié)果及分析,餓漢式單例與懶漢式單例,餓漢式單例類 餓漢式單例類(Eager Singleton),餓漢式單例與懶漢式單例,餓漢式單例類 餓漢式單例類(Eager Singleton),餓漢式單例與懶漢式單例,懶漢式單例類與雙重檢查鎖定 懶漢式單例類(Lazy Singleton),餓漢式單例與懶漢式單例,懶漢式單例類與雙重檢查鎖定 雙重檢查鎖定,多個線程同時訪問將導(dǎo)致創(chuàng)建多個單例對象!怎么辦?,餓漢式單例與懶漢式單例,懶漢式單例類與雙重檢查鎖定 雙重檢查鎖定,雙重檢查鎖定,餓漢式單例與懶漢式單例,餓漢式單例類與懶漢式單例類比較 餓漢式單例類:無須考慮多個線程同時訪問的問題;調(diào)用速度和反應(yīng)時間優(yōu)于懶漢式單例;資源利用效率不及懶漢式單例;系統(tǒng)加載時間可能會比較長 懶漢式單例類:實(shí)現(xiàn)了延遲加載;必須處理好多個線程同時訪問的問題;需通過雙重檢查鎖定等機(jī)制進(jìn)行控制,將導(dǎo)致系統(tǒng)性能受到一定影響,單例模式的優(yōu)缺點(diǎn)與適用環(huán)境,模式優(yōu)點(diǎn) 提供了對唯一實(shí)例的受控訪問 可以節(jié)約系統(tǒng)資源,提高系統(tǒng)的性能 允許可變數(shù)目的實(shí)例(多例類),單例模式的優(yōu)缺點(diǎn)與適用環(huán)境,模式缺點(diǎn) 擴(kuò)展困難(缺少抽象層) 單例類的職責(zé)過重 由于自動垃圾回收機(jī)制,可能會導(dǎo)致共享的單例對象的狀態(tài)丟失,單例模式的優(yōu)缺點(diǎn)與適用環(huán)境,模式適用環(huán)境 系統(tǒng)只需要一個實(shí)例對象,或者因?yàn)橘Y源消耗太大而只允許創(chuàng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論