簡述SOLID的物件導向的設計原則

2021-07-02 03:38:45 字數 1015 閱讀 4558

在這篇博文中,將給大家簡要介紹一下solid的物件導向的設計與實現的基本原則。其實這個需要自己做專案和看**的體會,個人經驗覺得還是比較有用的。

solid是物件導向設計與實現的時候推薦的乙個基本的原則,分別是single responsibility principle(單一職能原則),open close principle(開放封閉原則), liskov』s substitution principle (黎克特制替換原則),inte***ce segregation principle(介面分離原則)與dependency inversion principle (依賴倒置原則)的英文首字母的大寫縮寫而來。接下面會簡要介紹一些這些原則的基本概念,有一些是自己的理解。

開放封閉將的是任何軟體實體如類,模組(一般是動態鏈結庫),方法,介面等應該對擴充套件開放,而關閉修改。具體的意思就是說,我們應該是以「增加」的方式來應對修改,舉個例子:當我們要增加乙個新功能的時候,有乙個函式提供了類似的功能,這個時候很多人都習慣比這個函式擴充套件乙個引數什麼的,增加if-else的程式結構框架去處理這樣的情況,這個做法就違背了open -close原則,正確的做法應該是增加乙個方法來完成,有人問這樣可能有很多重複**啊? 這個應該是自己重新寫乙個私有方法去封裝 共性的**去解決, 以確保原來的方法保持不變。

黎克特制替換原則說的是任何基類都可以被子類代替而不影響相關程式模組的功能。這要求繼承類(子類)不應該修改擴充套件或者修改基類的功能,注意,這能說的是功能,不是說不能重寫某個方法,而應該是做的是相同的事情,對於函式來說,就是函式簽名需要完成的事。

介面隔離原則說的是使用者不應該依賴那些不需要的介面和方法。這個在實際的程式設計中很容易出現,比如說設計了介面a,被類b和c同時繼承了,然後b需要乙個新功能,而c不需要,這個時候做法不是在介面a中增加方法,應該是重新設計乙個 介面d,讓b繼承d,而c不應該做任何的修改。

依賴倒置原則我的理解是,高層次的模組(類)不應該依賴低層次的模組,他們都應該依賴於抽象,或者說是介面。 高層次的模組是指在類圖中處於上面的模組,一般是抽象類,介面類等。低層次的模組一般是相對於高層次而言的,它繼承自高層次的模組。具體可以參考

物件導向設計的SOLID原則

物件導向程式設計強調的是可擴充套件性,那麼我們要怎麼設計才具有更好的擴充套件性呢?solid原則是類級別的,物件導向的設計理念,它們與測試工具一起幫你改進腐壞的 solid由程式設計師們最喜歡的大叔 robert c.martin bob大叔 提出,它其實是五個其他縮略詞的組合 srp,ocp,ls...

物件導向的設計的SOLID原則

s.o.l.i.d是物件導向設計和程式設計中5個重要編碼規則的首字母的縮寫。srpthe single responsibility principle 單一責任原則 當需要修改某個類的時候原因有且只有乙個。換句話說就是讓乙個類只做一種型別的責任,當這個類需要承擔其他型別的責任的時候,就需要分解這個...

物件導向的設計的SOLID原則

s.o.l.i.d是物件導向設計和程式設計中5個重要編碼規則的首字母的縮寫。srpthe single responsibility principle 單一責任原則 當需要修改某個類的時候原因有且只有乙個。換句話說就是讓乙個類只做一種型別的責任,當這個類需要承擔其他型別的責任的時候,就需要分解這個...