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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式(面向对象)设计的七大原则

發布時間:2024/4/17 asp.net 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式(面向对象)设计的七大原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聲明:本人設計模式模塊是集合網上資料和老師課件總結的知識點,如本博客有侵權,本人即刻刪。

設計模式(面向對象設計)原則,分別是:
1.開放封閉原則:對擴展開放,對修改關閉
2.單一職責原則:一個類只做一件事情
3.依賴倒轉原則:采用接口編程
4.迪米特法則(最小知識原則):高內聚 、低耦合
5.接口隔離原則:細節接口
6.合成/聚合復用原則:避免使用繼承
7.里氏代換原則:子類不能去修改父類的功能

1、開放封閉原則

概念:一個軟件實體如類、模板、和函數應該對擴展開放、對修改關閉。模塊應該在盡量不修改源代碼的情況下進行擴展。
在軟件周期內,因為變化、升級和維護等原因需要對軟件原有代碼進行修改時,可能會給代碼引入錯誤,也可能會使我們不得不對整個功能進行重構,并且需要原有代碼經過重新測試。當軟件需求變化時,盡量通過擴展軟件實體的行為來實現變化,而不是通過修改已有代碼來實現變化。
開放封閉原則是面向對象設計的核心所在,遵循這個原則可以帶來面向對象技術所聲稱的巨大好處,也就是可維護、可擴展、可復用、靈活性好。開發人員應該僅對程序中呈現的頻繁變化的那些部分作出抽象。

2、單一職責原則

概念:就一個類而言,應該僅有一個引起它變化的原因。
當我們在做編程的時候,很自然的回個一個類加上各種各樣的功能。這樣意味著,無論任何需求要來,你都需要更改這個類,這樣其實是很糟糕的,維護麻煩,復用不可能,也缺乏靈活性。如果一個類承擔的職責過多,就等于把這些職責耦合起來,一個職責變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭到很多意想不到的破壞。

3、依賴倒轉原則

概念:依賴倒轉原則是程序要依賴于抽象接口,不要依賴于具體實現。簡單的來說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊的耦合。
有時候為了代碼復用,一般會把常用的代碼寫成函數或類庫。這樣開發新項目的時候直接用就行了。比如做項目的時候大多要訪問數據庫,所以我們把訪問數據庫的代碼寫成了函數。每次做項目去調用這些函數。那么問題來了,我們要做新項目的時候,發現業務邏輯高層模塊都是一樣的,但客戶卻希望使用不同的數據庫或存儲方式,這時就出現了麻煩。我們希望能再次利用這些高層模塊,但是高層模塊都是與低層的訪問數據庫綁定在一起,沒辦法復用這些高層的模塊。所以不管是高層模塊和底層模塊都應該依賴于抽象,具體一點就是接口或者抽象類,只要接口是穩定的,那么任何一個更改都不用擔心。

4、迪米特法則(最小知識原則)

概念:一個軟件實體應當盡可能的少與其他實體發生相互作用。一個軟件單位對其他軟件單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。迪米特法則的初衷在于降低類之間的耦合。由于每個類盡量減少對其他類的依賴,因此,很容易使得系統的功能模塊功能獨立,相互之間不存在(或很少有)依賴關系。迪米特法則不希望類之間建立直接的聯系。如果有真的需要建立聯系的,也希望能通過他的友元類來轉達。因此,應用迪米特法則有可能造成一個后果就是:系統中存在大量的中介類,這些類之所以存在完全是為了傳遞類之間的相互關系,這在一定程度上增加了系統的復雜度。

5、接口隔離原則

概念:客戶端不應該依賴他不需要的接口,類間的依賴關系應建立在最小的接口上。
接口隔離原則的核心定義,不出現臃腫的接口,但是“小”是有限度的,首先就是不能違反單一職責原則。

6、合成/聚合復用原則

概念:合成/聚合復用原則經常又叫做合成復用原則,就是在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分,新的對象通過這些對象的委派達到復用已有功能的目的。他的設計原則是:要盡量使用合成/聚合,盡量不要使用繼承。

7、里氏代換原則

概念:里氏代換原則是面向對象設計的基本原則之一。即任何基類可以出現的地方,子類一定可以出現。里氏代換原則是繼承復用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受影響時,基類才能被真正復用,而衍生類也能夠在積累的基礎上增加新的行為,里氏代換原則是對“開-閉”原則的補充。實現“開-閉”原則的關鍵步驟就是抽象化。在基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。
當滿足繼承的時候,父類肯定存在非私有的成員,子類肯定是得到了父類的這些非私有成員(假設,父類的成員全部是私有的,那么子類沒辦法從父類繼承任何成員,也就不存在繼承的概念了)。既然子類繼承了父類的這些非私有成員,那么子類對象也就可以在父類對象中調用這些非私有成員。所以,子類對象可以替換父類對象的位置。
在里氏帶環原則下,當需求有變化時,只需繼承,而別的東西不會改變。由于里氏代換原則才使得開放封閉稱為可能。這樣使得子類在父類無需修改的情況下就可以擴展。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的设计模式(面向对象)设计的七大原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。