版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
設(shè)計(jì)模式設(shè)計(jì)模式是軟件開(kāi)發(fā)中可重用的解決方案,幫助開(kāi)發(fā)者設(shè)計(jì)優(yōu)雅、可擴(kuò)展的代碼。設(shè)計(jì)模式提供通用的解決方案,用于處理常見(jiàn)設(shè)計(jì)問(wèn)題。設(shè)計(jì)模式概述1定義設(shè)計(jì)模式是一套經(jīng)過(guò)驗(yàn)證的、可復(fù)用的解決方案,用于解決軟件設(shè)計(jì)中常見(jiàn)的難題。2目的設(shè)計(jì)模式旨在提高代碼的可重用性、可維護(hù)性和可擴(kuò)展性,同時(shí)降低代碼的復(fù)雜度。3種類設(shè)計(jì)模式分為三大類:創(chuàng)建型、結(jié)構(gòu)型和行為型,每類都包含多種不同的模式。4價(jià)值設(shè)計(jì)模式可以幫助開(kāi)發(fā)者快速構(gòu)建高質(zhì)量的軟件系統(tǒng),并提高團(tuán)隊(duì)協(xié)作效率。設(shè)計(jì)模式的歷史發(fā)展早期萌芽20世紀(jì)70年代,面向?qū)ο缶幊膛d起,設(shè)計(jì)模式的概念開(kāi)始出現(xiàn)。一些優(yōu)秀的設(shè)計(jì)方案被總結(jié)和傳播,如“GangofFour”模式。設(shè)計(jì)模式的誕生1994年,《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》出版,標(biāo)志著設(shè)計(jì)模式的正式誕生。該書(shū)將23種常見(jiàn)的設(shè)計(jì)模式進(jìn)行了分類和總結(jié),成為設(shè)計(jì)模式領(lǐng)域的經(jīng)典著作。面向?qū)ο笤O(shè)計(jì)原則封裝隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外暴露必要接口,提高代碼可維護(hù)性和可重用性。抽象提取共性,忽略差異,定義通用接口或抽象類,增強(qiáng)代碼靈活性。繼承實(shí)現(xiàn)代碼復(fù)用,子類繼承父類屬性和方法,擴(kuò)展功能,減少代碼冗余。多態(tài)不同對(duì)象對(duì)相同消息做出不同反應(yīng),提高代碼靈活性,增強(qiáng)系統(tǒng)可擴(kuò)展性。單一職責(zé)原則專注單一功能每個(gè)類或模塊只負(fù)責(zé)一項(xiàng)特定的功能。降低耦合度專注單一職責(zé),減少代碼依賴,提升模塊獨(dú)立性。代碼可讀性提高代碼可讀性和可維護(hù)性,方便代碼修改和測(cè)試。開(kāi)閉原則擴(kuò)展性設(shè)計(jì)模式在軟件設(shè)計(jì)中至關(guān)重要,因?yàn)樗梢蕴岣叽a的可維護(hù)性和擴(kuò)展性,同時(shí)降低軟件開(kāi)發(fā)的成本??删S護(hù)性設(shè)計(jì)模式可以有效地解決軟件開(kāi)發(fā)中一些常見(jiàn)的問(wèn)題,比如如何設(shè)計(jì)可擴(kuò)展、可維護(hù)的代碼,如何降低代碼的復(fù)雜度等等。復(fù)用性設(shè)計(jì)模式可以提高代碼的復(fù)用性,避免重復(fù)造輪子,提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本。里氏替換原則子類可替換父類子類對(duì)象可以替換父類對(duì)象,不影響程序的正常運(yùn)行。保證了代碼的擴(kuò)展性,并降低了維護(hù)成本。依賴倒置原則11.高層模塊不應(yīng)該依賴于低層模塊,兩者都應(yīng)該依賴于抽象。22.抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。33.降低耦合度通過(guò)引入抽象,可以降低模塊之間的耦合度,提高代碼的可維護(hù)性和可擴(kuò)展性。44.易于測(cè)試依賴倒置原則可以使代碼更容易測(cè)試,因?yàn)榭梢愿菀椎啬M依賴。接口分離原則接口分離原則(ISP)旨在避免過(guò)度依賴,提高靈活性和可維護(hù)性。通過(guò)將臃腫的接口拆分為更小的、特定于角色的接口,可以減少不必要的依賴關(guān)系,并降低代碼的耦合度。六大設(shè)計(jì)模式:創(chuàng)建型創(chuàng)建型模式主要關(guān)注對(duì)象的創(chuàng)建過(guò)程,提供一種創(chuàng)建對(duì)象的最佳實(shí)踐。靈活創(chuàng)建讓創(chuàng)建過(guò)程變得更加靈活,避免直接使用new操作符創(chuàng)建對(duì)象。封裝復(fù)雜性隱藏創(chuàng)建對(duì)象的細(xì)節(jié),將復(fù)雜性封裝在創(chuàng)建模式中。單例模式定義保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn).應(yīng)用場(chǎng)景配置文件讀取,數(shù)據(jù)庫(kù)連接,線程池,日志記錄器,緩存等等.優(yōu)點(diǎn)節(jié)省內(nèi)存避免重復(fù)創(chuàng)建全局訪問(wèn)缺點(diǎn)違反開(kāi)閉原則單例模式復(fù)雜單元測(cè)試?yán)щy工廠方法模式定義定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪個(gè)類。工廠方法使一個(gè)類的實(shí)例化延遲到子類。結(jié)構(gòu)包含抽象工廠角色、具體工廠角色、抽象產(chǎn)品角色和具體產(chǎn)品角色。應(yīng)用場(chǎng)景適用于需要?jiǎng)?chuàng)建不同類型的對(duì)象,但具體類型在運(yùn)行時(shí)才能確定。抽象工廠模式提供創(chuàng)建產(chǎn)品族對(duì)象的接口抽象工廠模式提供一個(gè)創(chuàng)建相關(guān)或依賴對(duì)象的接口。例如,創(chuàng)建一個(gè)包含按鈕、文本框等元素的GUI組件家族,或創(chuàng)建一個(gè)包含數(shù)據(jù)庫(kù)連接和日志記錄對(duì)象的系統(tǒng)服務(wù)家族。不同的具體工廠每個(gè)具體工廠實(shí)現(xiàn)抽象工廠接口,提供用于創(chuàng)建特定產(chǎn)品族的具體方法。例如,一個(gè)具體工廠可以創(chuàng)建Windows風(fēng)格的GUI組件,另一個(gè)工廠可以創(chuàng)建Mac風(fēng)格的組件。產(chǎn)品族概念抽象工廠模式關(guān)注于創(chuàng)建一組相關(guān)的對(duì)象,而不是單個(gè)對(duì)象。這些對(duì)象通常具有相同的主題或用途,并相互依賴。例如,創(chuàng)建一個(gè)包含按鈕和文本框的GUI組件族。建造者模式逐步構(gòu)建建造者模式將復(fù)雜對(duì)象的構(gòu)建過(guò)程分解成多個(gè)步驟,通過(guò)不同的構(gòu)建方法逐步完成對(duì)象的創(chuàng)建。靈活配置通過(guò)不同的建造者類實(shí)現(xiàn)不同的構(gòu)建邏輯,可以根據(jù)不同的需求創(chuàng)建不同的對(duì)象,實(shí)現(xiàn)靈活的配置。分離構(gòu)建過(guò)程將對(duì)象的構(gòu)建過(guò)程與對(duì)象的表示分離,使構(gòu)建過(guò)程變得更加清晰易懂。原型模式原型模式是一種創(chuàng)建型設(shè)計(jì)模式,它允許通過(guò)復(fù)制現(xiàn)有對(duì)象創(chuàng)建新的對(duì)象。它通過(guò)克?。ɑ驈?fù)制)一個(gè)現(xiàn)有對(duì)象(稱為原型)來(lái)創(chuàng)建新的對(duì)象,而不是每次都從頭開(kāi)始創(chuàng)建。六大設(shè)計(jì)模式:結(jié)構(gòu)型橋接模式橋接模式將抽象部分與實(shí)現(xiàn)部分分離,提高了代碼的可擴(kuò)展性和可維護(hù)性。適配器模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶期望的另一個(gè)接口,方便不同接口之間的協(xié)作。裝飾器模式裝飾器模式在不改變?cè)惖那闆r下,動(dòng)態(tài)地為對(duì)象添加額外的職責(zé)。組合模式組合模式將對(duì)象組合成樹(shù)形結(jié)構(gòu),允許客戶端統(tǒng)一地處理單個(gè)對(duì)象或多個(gè)對(duì)象。適配器模式11.兼容性將現(xiàn)有類接口轉(zhuǎn)換為目標(biāo)接口,使原本不兼容的類能夠協(xié)同工作。22.代碼重用避免修改現(xiàn)有代碼,只需創(chuàng)建適配器類進(jìn)行連接,提高代碼復(fù)用率。33.解耦將客戶代碼與具體實(shí)現(xiàn)類解耦,降低代碼耦合度,提高代碼可維護(hù)性。橋接模式橋接模式橋接模式將抽象部分與實(shí)現(xiàn)部分分離,使得兩者可以獨(dú)立變化。它通過(guò)接口或抽象類來(lái)定義抽象部分,而具體實(shí)現(xiàn)則由不同的具體類來(lái)提供。應(yīng)用場(chǎng)景橋接模式常用于需要將抽象部分與實(shí)現(xiàn)部分分離的場(chǎng)景,例如:當(dāng)需要在運(yùn)行時(shí)選擇不同的實(shí)現(xiàn)方式時(shí)當(dāng)需要擴(kuò)展抽象類而不修改其代碼時(shí)當(dāng)需要將抽象部分與實(shí)現(xiàn)部分獨(dú)立開(kāi)發(fā)和維護(hù)時(shí)裝飾器模式動(dòng)態(tài)地添加職責(zé)裝飾器模式為對(duì)象添加新功能,不改變?cè)袑?duì)象結(jié)構(gòu)。裝飾器可以在運(yùn)行時(shí)動(dòng)態(tài)地為對(duì)象添加職責(zé),靈活地?cái)U(kuò)展功能。靈活組合功能通過(guò)組合不同的裝飾器,可以實(shí)現(xiàn)各種功能組合。裝飾器模式使功能擴(kuò)展更加靈活,方便維護(hù)和修改。組合模式樹(shù)狀結(jié)構(gòu)組合模式使用樹(shù)形結(jié)構(gòu)表示對(duì)象之間的層次關(guān)系。統(tǒng)一接口組合模式提供統(tǒng)一的接口,方便操作單個(gè)對(duì)象或整個(gè)樹(shù)形結(jié)構(gòu)。靈活組合組合模式允許靈活地添加、刪除或修改子節(jié)點(diǎn),滿足不同場(chǎng)景的需求。外觀模式簡(jiǎn)化接口外觀模式提供一個(gè)統(tǒng)一的接口,隱藏系統(tǒng)內(nèi)部的復(fù)雜性,簡(jiǎn)化客戶程序?qū)ο到y(tǒng)的調(diào)用。降低耦合外觀模式將客戶程序與子系統(tǒng)解耦,客戶程序無(wú)需了解子系統(tǒng)的具體細(xì)節(jié),提高系統(tǒng)的可維護(hù)性。提高復(fù)用性外觀模式可以將多個(gè)子系統(tǒng)組合成一個(gè)統(tǒng)一的接口,方便其他系統(tǒng)進(jìn)行復(fù)用。享元模式享元模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它通過(guò)共享對(duì)象來(lái)減少內(nèi)存的使用和提高性能。享元模式將對(duì)象的內(nèi)部狀態(tài)和外部狀態(tài)分離,共享對(duì)象的內(nèi)部狀態(tài),并通過(guò)不同的外部狀態(tài)來(lái)區(qū)分不同的對(duì)象。六大設(shè)計(jì)模式:行為型定義行為型模式主要關(guān)注對(duì)象之間的交互和職責(zé)分配,以及算法和流程的封裝。分類行為型模式可以進(jìn)一步分為類行為模式和對(duì)象行為模式,它們分別通過(guò)類的繼承和對(duì)象的組合來(lái)實(shí)現(xiàn)不同的行為模式。應(yīng)用行為型模式在軟件開(kāi)發(fā)中應(yīng)用廣泛,例如,可以用于實(shí)現(xiàn)策略切換、事件處理、狀態(tài)管理等功能。策略模式定義策略模式定義了一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以相互替換。上下文策略模式包含一個(gè)上下文類,它持有算法的引用。策略策略模式定義了具體的算法,并由上下文類使用。觀察者模式定義觀察者模式是一種行為型模式,它定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象。應(yīng)用場(chǎng)景例如,天氣預(yù)報(bào)系統(tǒng)中,多個(gè)用戶訂閱天氣信息,當(dāng)天氣變化時(shí),所有訂閱的用戶都會(huì)收到通知。優(yōu)點(diǎn)松散耦合擴(kuò)展性強(qiáng)支持廣播通信狀態(tài)模式定義狀態(tài)模式允許一個(gè)對(duì)象在它的內(nèi)部狀態(tài)改變時(shí)改變它的行為。優(yōu)點(diǎn)將狀態(tài)邏輯封裝在獨(dú)立的類中,提高代碼可讀性和可維護(hù)性。應(yīng)用例如,一個(gè)游戲角色可以有不同的狀態(tài),例如行走、攻擊、防御等。備忘錄模式11.保存狀態(tài)將對(duì)象狀態(tài)保存到備忘錄對(duì)象,以便在將來(lái)恢復(fù)到該狀態(tài)。22.恢復(fù)狀態(tài)利用備忘錄對(duì)象恢復(fù)到先前保存的狀態(tài),從而實(shí)現(xiàn)狀態(tài)的撤銷和重做。33.保護(hù)數(shù)據(jù)通過(guò)備忘錄模式,可以保護(hù)原始對(duì)象的狀態(tài),避免被意外修改。44.應(yīng)用場(chǎng)景適合需要記錄和恢復(fù)對(duì)象狀態(tài)的場(chǎng)景,例如文本編輯器中的撤銷/重做功能、游戲中的存檔和讀檔功能等。迭代器模式定義提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而又不暴露該對(duì)象的內(nèi)部表示。優(yōu)點(diǎn)簡(jiǎn)化遍歷復(fù)雜數(shù)據(jù)結(jié)構(gòu),增強(qiáng)代碼可擴(kuò)展性。應(yīng)用場(chǎng)景需要遍歷不同類型的集合,實(shí)現(xiàn)多態(tài)遍歷。示例Java中的Iterator接口,可用于遍歷List、S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮膚黑色素瘤的臨床護(hù)理
- 《數(shù)字證書(shū)及公鑰》課件
- 化膿性鼻竇炎的健康宣教
- 天皰瘡的臨床護(hù)理
- 《單片機(jī)原理及應(yīng)用 》課件-第8章
- 《Java程序設(shè)計(jì)及移動(dòng)APP開(kāi)發(fā)》課件-第07章
- 手癬的臨床護(hù)理
- 變應(yīng)性接觸性皮炎的臨床護(hù)理
- 《齒輪西農(nóng)版》課件
- JJF(陜) 050-2021 光電式皮帶張力計(jì)校準(zhǔn)規(guī)范
- 微積分(II)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋南昌大學(xué)
- 二零二四年光伏電站建設(shè)與運(yùn)營(yíng)管理合同2篇
- 2024屆浙江臺(tái)州高三一模英語(yǔ)試題含答案
- 2024版:離婚法律訴訟文書(shū)范例3篇
- 一專科一特色護(hù)理匯報(bào)
- 2024年國(guó)考申論真題(行政執(zhí)法卷)及參考答案
- 江蘇省南通市2024-2025學(xué)年高一上學(xué)期11月期中英語(yǔ)試題(無(wú)答案)
- 2024年11月紹興市2025屆高三選考科目診斷性考試(一模) 技術(shù)試卷(含答案詳解)
- 技術(shù)回轉(zhuǎn)窯液壓擋輪常見(jiàn)問(wèn)題及修復(fù)方案
- 胃穿孔疑難病例討論
- 【數(shù)學(xué)】小學(xué)四年級(jí)口算題大全(10000道)
評(píng)論
0/150
提交評(píng)論