關於《物件導向六大原則》的解讀

2021-10-24 10:14:26 字數 1296 閱讀 9054

目錄

一:srp  單一職責原則  single responsibility priciple

二:ocp  開閉原則   open close principle   讓程式更穩定靈活

三:lsp  黎克特制替換原則  liskov substitution principle    讓程式擴充套件性更好

四:dip   依賴倒置原則   dependence inversion principle     

五:isp  介面隔離原則   inte***cesegregation principles

六:lod   迪公尺特原則   law of demeter    更好的擴充套件

乙個類中應該是一組相關性很高的函式、資料的封裝,不一樣的功能不應該放到乙個類中。如何劃分乙個類、乙個函式的職責可能還需要根據具體業務和個人經驗而定。也就是功能範圍的界定並不是絕對的。

軟體中的物件(類、模組、函式等)對於擴充套件應該是開放的,但是,對於修改是封閉的。而遵循開閉原則的重要手段應該是通過抽象。開發中盡可能的通過繼承的方式來公升級、維護原有系統。當然,在實際的開發過程中,修改原有**、擴充套件**往往是同時存在的。

所有引用基類的地方必須能透明地使用其子類的物件,反之不然。

物件導向的語言的三大特點是:封裝、繼承、多型,黎克特制替換原則就是依賴於繼承、多型這兩大特性。核心原理是抽象,通過抽象建立規範,處理業務時用具體實現替換抽象(依賴注入),保證系統的高擴充套件性和靈活性;抽象又依賴於繼承這個特性。

開閉原則和黎克特制替換原則往往是生死相依、不棄不離的,通過黎克特制替換來達到對擴充套件開放,對修改關閉的效果。然而,這兩個原則都同時強調了乙個oop的重要特性—抽象,因此,在開發過程中運用抽象是走向**優化的重要一步。

代指一種特定的解偶形式,指模組間的依賴抽象,而不依賴具體實現,其依賴關係是通過介面或抽象類產生的,也就是面向介面或抽象類程式設計。

客戶端不應該依賴它不需要的介面,或者說:類間的依賴關係應該建立在最小的介面上。介面隔離原則將非常龐大、臃腫的介面拆分成為更小的和更具體的介面。

也稱為最少知識原則(least knowledge principle),即:乙個物件應該對其他物件有最少的了解。乙個類應該對自己需要耦合或呼叫的類知道得最少,類的內部如何實現、如何複雜都與呼叫者或者依賴者沒關係,呼叫者或者依賴者只需要知道他需要的方法即可,至於方法的內部實現是完全不需要關心的。類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大。

特別感謝:

物件導向 六大原則

舉乙個簡單的例子,登入功能。一般登入需要包括幾個基本的功能 1.登入頁面 2.接受使用者輸入 3.提交使用者輸入資料到服務端驗證 4.返回驗證結果並提示給使用者 按照單一原則我們就可以將登入功能拆分成兩個類,登入頁類和網路請求類。其實因為單一原則並不是很容易劃分,很多時候需要根據個人經驗和實際情況 ...

物件導向六大原則

先來看物件導向的六大原則吧 一 單一職責原則 二 開閉原則 三 黎克特制替換原則 四 依賴倒置原則 五 介面隔離原則 六 迪公尺特原則class imageloader 就像上面的 一樣我們把所有功能寫到乙個類中,隨著我們專案越來越大功能也越來越大,會導致這個類很龐大也很脆弱。這時候可以拆分出來每個...

物件導向六大原則

引用一段經典的話,武學的最高境界是無招勝有招 在程式設計領域,設計模式就可以認為是招數,而真正的內功心法是設計原則 下面講述一下程式設計中應該遵循的基本原則 乙個類只負責一種職責,只有這種職責的改變會導致這個類的變更。繞口一點的正統說法 不要存在多於乙個原因導致類變更 假如 類t 負責有兩種職責 p...