日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

设计模式之总体介绍

發(fā)布時(shí)間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式之总体介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.?背景與介紹

  設(shè)計(jì)模式是經(jīng)過(guò)反復(fù)使用、經(jīng)過(guò)分類的代碼總結(jié)。設(shè)計(jì)模式的目的是提高代碼可重用性和可靠性,并使代碼條理清晰、易于理解、易于維護(hù)。

  設(shè)計(jì)模式描述了在各種情況下,要選擇什么樣的方案來(lái)解決問(wèn)題。設(shè)計(jì)模式通常以類和對(duì)象來(lái)描述其中的關(guān)系和相互作用,換句話就是在設(shè)計(jì)模式里,這些類和普通的類沒(méi)有區(qū)別,只是它們的相互作用形成了各種設(shè)計(jì)模式,并解決了很多現(xiàn)實(shí)性的問(wèn)題。

  設(shè)計(jì)模式能使不穩(wěn)定依賴于相對(duì)穩(wěn)定、具體依賴于相對(duì)抽象,避免會(huì)引起麻煩的緊耦合,以增強(qiáng)軟件設(shè)計(jì)面對(duì)并適應(yīng)變化的能力。

  設(shè)計(jì)模式是對(duì)面向?qū)ο蟮慕^佳應(yīng)用,它提供了眾多不斷重復(fù)發(fā)生在我們周圍的問(wèn)題的解決方案。學(xué)習(xí)設(shè)計(jì)模式可以更好的理解面向?qū)ο蟮膬?nèi)容,同時(shí)面向?qū)ο笠矠樵O(shè)計(jì)模式提供了很好的理論基礎(chǔ),在學(xué)習(xí)的過(guò)程中,會(huì)接觸到很多面向?qū)ο蟮南嚓P(guān)應(yīng)用。

2.?設(shè)計(jì)原則

  • 單一職責(zé)原則?Single Responsiblity Principle SRP

  • 開(kāi)閉原則Open Closed PrincipleOCP

    • 模塊應(yīng)對(duì)擴(kuò)展開(kāi)放,而對(duì)修改關(guān)閉。直白點(diǎn)說(shuō)就是,模塊應(yīng)盡量在不修改原代碼的情況下進(jìn)行擴(kuò)展

  • 里氏代換原則Liskov Substitution PrincipleLSP

    • 如果調(diào)用的是父類的話,那么換成子類也完全可以運(yùn)行

  • 依賴倒轉(zhuǎn)原則Dependency Inversion PrincipleDIP

    • 把父類都替換成它的子類,而不會(huì)導(dǎo)致程序的行為發(fā)聲變化

  • 接口隔離原則Interface Segregation PrincipleISP

  • 合成/聚合復(fù)用原則(Composite/Aggregate Reuse PrincipleCARP

  • 最小知識(shí)原則(Principle of Least KnowledgePLK,也叫迪米特法則)

    • 一個(gè)對(duì)象應(yīng)對(duì)其他對(duì)象有盡可能少的了解,也就是說(shuō)要做好信息的隱藏,這個(gè)原則可以更多的從封裝的角度去思考,包括方法與屬性的設(shè)計(jì)。

3.?分類

  根據(jù)GOF《設(shè)計(jì)模式》一書,設(shè)計(jì)模式分為三個(gè)大類,共23種。

  以下改編自維基百科,另外再附一張總覽圖,方便有個(gè)總體的概念

?

模式名稱

描述

創(chuàng)建型模式

工廠方法模式

定義一個(gè)接口用于創(chuàng)建對(duì)象,但是讓子類決定初始化哪個(gè)類。工廠方法把一個(gè)類的初始化下放到子類。

抽象工廠模式

為一個(gè)產(chǎn)品族提供了統(tǒng)一的創(chuàng)建接口。當(dāng)需要這個(gè)產(chǎn)品族的某一系列的時(shí)候,可以從抽象工廠中選出相應(yīng)的系列創(chuàng)建一個(gè)具體的工廠類。

單例模式

確保一個(gè)類只有一個(gè)實(shí)例,并提供對(duì)該實(shí)例的全局訪問(wèn)。

生成器模式

將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。

原型模式

用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過(guò)拷貝這些原型,創(chuàng)建新的對(duì)象。

結(jié)構(gòu)型模式

適配器模式

將某個(gè)類的接口轉(zhuǎn)換成客戶端期望的另一個(gè)接口表示。適配器模式可以消除由于接口不匹配所造成的類兼容性問(wèn)題。

橋接模式

將一個(gè)抽象與實(shí)現(xiàn)解耦,以便兩者可以獨(dú)立的變化。

組合模式

把多個(gè)對(duì)象組成樹狀結(jié)構(gòu)來(lái)表示局部與整體,這樣用戶可以一樣的對(duì)待單個(gè)對(duì)象和對(duì)象的組合。

修飾模式

向某個(gè)對(duì)象動(dòng)態(tài)地添加更多的功能。修飾模式是除類繼承外另一種擴(kuò)展功能的方法。

外觀模式

為子系統(tǒng)中的一組接口提供一個(gè)一致的界面, 外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

享元模式

通過(guò)共享以便有效的支持大量小顆粒對(duì)象。

代理模式

為其他對(duì)象提供一個(gè)代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。

行為型模式

責(zé)任鏈模式

為解除請(qǐng)求的發(fā)送者和接收者之間耦合,而使多個(gè)對(duì)象都有機(jī)會(huì)處理這個(gè)請(qǐng)求。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理它。

命令模式

將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可取消的操作。

解釋器模式

給定一個(gè)語(yǔ)言, 定義它的文法的一種表示,并定義一個(gè)解釋器, 該解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。

迭代器模式

提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素, 而又不需暴露該對(duì)象的內(nèi)部表示。

中介者模式

包裝了一系列對(duì)象相互作用的方式,使得這些對(duì)象不必相互明顯作用,從而使它們可以松散偶合。當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用,保證這些作用可以彼此獨(dú)立的變化。

備忘錄模式

備忘錄對(duì)象是一個(gè)用來(lái)存儲(chǔ)另外一個(gè)對(duì)象內(nèi)部狀態(tài)的快照的對(duì)象。備忘錄模式的用意是在不破壞封裝的條件下,將一個(gè)對(duì)象的狀態(tài)捉住,并外部化,存儲(chǔ)起來(lái),從而可以在將來(lái)合適的時(shí)候把這個(gè)對(duì)象還原到存儲(chǔ)起來(lái)的狀態(tài)。

觀察者模式

在對(duì)象間定義一個(gè)一對(duì)多的聯(lián)系性,由此當(dāng)一個(gè)對(duì)象改變了狀態(tài),所有其他相關(guān)的對(duì)象會(huì)被通知并且自動(dòng)刷新。

狀態(tài)模式

讓一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變的時(shí)候,其行為也隨之改變。狀態(tài)模式需要對(duì)每一個(gè)系統(tǒng)可能獲取的狀態(tài)創(chuàng)立一個(gè)狀態(tài)類的子類。當(dāng)系統(tǒng)的狀態(tài)變化時(shí),系統(tǒng)便改變所選的子類。

策略模式

定義一個(gè)算法的系列,將其各個(gè)分裝,并且使他們有交互性。策略模式使得算法在用戶使用的時(shí)候能獨(dú)立的改變。

模板方法模式

模板方法模式準(zhǔn)備一個(gè)抽象類,將部分邏輯以具體方法及具體構(gòu)造子類的形式實(shí)現(xiàn),然后聲明一些抽象方法來(lái)迫使子類實(shí)現(xiàn)剩余的邏輯。不同的子類可以以不同的方式實(shí)現(xiàn)這些抽象方法,從而對(duì)剩余的邏輯有不同的實(shí)現(xiàn)。先構(gòu)建一個(gè)頂級(jí)邏輯框架,而將邏輯的細(xì)節(jié)留給具體的子類去實(shí)現(xiàn)。

訪問(wèn)者模式

封裝一些施加于某種數(shù)據(jù)結(jié)構(gòu)元素之上的操作。一旦這些操作需要修改,接受這個(gè)操作的數(shù)據(jù)結(jié)構(gòu)可以保持不變。訪問(wèn)者模式適用于數(shù)據(jù)結(jié)構(gòu)相對(duì)未定的系統(tǒng),它把數(shù)據(jù)結(jié)構(gòu)和作用于結(jié)構(gòu)上的操作之間的耦合解脫開(kāi),使得操作集合可以相對(duì)自由的演化。


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的设计模式之总体介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。