最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

設計模式(4)設計模式的基本原則(下)SOLID 原則

2023-08-11 00:08 作者:zzk13180  | 我要投稿

## SOLID 原則


SOLID 是一個縮寫,每個字母代表一個準則,是由羅伯特·C·馬?。≧obert C. Martin)在 2000 年代初提出的一組面向對象設計的指導原則。


1. **單一職責原則 (Single Responsibility Principle, SRP)**


當代碼的復雜性增加時,我們需要將代碼分解成更小的部分,將它們按照不同的職責進行組織。


每個類應該只負責一項職責,引起它變化的原因也應該只有一個。


這樣不僅可以減少復雜度,還可以在變更時降低影響范圍。


2. **開放封閉原則 (Open Closed Principle, OCP)**


對擴展開放,對修改關閉。


如果一個類已經(jīng)完成了其既定的職責,當需求發(fā)生變化時,應該通過擴展的方式來應對變化,而不是修改原有的代碼。


開放封閉原則強調(diào)通過抽象來實現(xiàn)擴展,因此需要在設計中充分考慮抽象角色的定義。


抽象接口或基類應該明確描述出可以擴展的行為,而具體的實現(xiàn)則可以在需要的時候進行擴展。


開放封閉原則不能應用于所有對類進行的修改中,如果類本身有問題,修改是必要的。


3. **里氏替換原則 (Liskov Substitution Principle, LSP)**


里氏替換原則是由麻省理工學院計算機科學實驗室的里斯科夫(Liskov)女士在 1987 年提出的。


里氏替換原則提供了一種對繼承關系的指導規(guī)則,它強調(diào)子類應該可以替換掉父類,軟件單位的功能不受影響。


如果S是T的子類型,那么在任何T類型出現(xiàn)的地方應該都可以替換為S類型,而不會導致程序的任何錯誤或者異常。


這要求子類子類不應該破壞父類的約束,子類重寫父類的方法時,方法的輸入?yún)?shù)要比父類方法的輸入?yún)?shù)更寬松或者相等,方法的輸出結果要比父類更具體或者相等。


在大部分的編程語言中,里氏替換的規(guī)則已經(jīng)內(nèi)置其中,如果你違反了這些規(guī)則,編譯器會報錯。


4. **接口隔離原則 (Interface Segregation Principle, ISP)**


當一個接口內(nèi)定義的方法過多時,實現(xiàn)這個接口的類可能需要實現(xiàn)一些它并不需要的方法。


這時候,我們就需要將這個接口拆分成多個更細粒度的接口,以便于讓實現(xiàn)類只依賴于它們實際使用的接口方法。


接口應該遵循單一職責原則,應該多用接口組合的方式,不要強迫類依賴于其不使用的方法。


5. **依賴倒置原則 (Dependency Inversion Principle, DIP)**


在傳統(tǒng)的開發(fā)過程中,自然和直觀的方式是,先開發(fā)低層模塊(如數(shù)據(jù)庫訪問、文件操作)然后再開發(fā)高層模塊(如業(yè)務邏輯)。


這導致高層模塊往往依賴于低層模塊,因為高層模塊需要使用低層模塊提供的功能。


依賴倒置原則要求將這種自然的依賴關系倒置或反轉,讓高層和低層模塊都依賴于抽象。


這種倒置使得低層模塊可以自由地改變和擴展,而不會影響到高層模塊。


例如,我們可以先定義一個抽象的數(shù)據(jù)庫訪問接口,然后讓低層模塊實現(xiàn)這個接口,高層模塊依賴于這個接口,從而實現(xiàn)高層模塊和低層模塊的解耦。



設計模式(4)設計模式的基本原則(下)SOLID 原則的評論 (共 條)

分享到微博請遵守國家法律
霍山县| 丰宁| 金堂县| 永泰县| 泽州县| 雷山县| 林芝县| 安新县| 沅江市| 东城区| 顺平县| 安阳县| 什邡市| 汉寿县| 西贡区| 深泽县| 谢通门县| 潼关县| 科尔| 根河市| 上蔡县| 珠海市| 怀集县| 武宣县| 蕲春县| 连江县| 酒泉市| 华蓥市| 马山县| 东乡县| 久治县| 昆明市| 新兴县| 澜沧| 通江县| 樟树市| 乐至县| 五华县| 黄大仙区| 嘉禾县| 石楼县|