設計模式-六大原則
目錄
單一職責原則:Single Responsibility Principle
裡式代換原則:Liskov Substitution Principle
依賴倒轉原則:Dependence Inversion Principle
介面隔離原則:InterfaceSegregation Principles
前言
設計模式六大原則,把這六個原則的首字母聯合起來(兩個 L 算做一個)就是 SOLID (solid,穩定的),其代表的含義就是這六個原則結合使用的好處:建立穩定、靈活、健壯的設計。下面我們來分別看一下這六大設計原則。
單一職責原則:Single Responsibility Principle
定義:一個類只負責一項職責
就一個類而言,僅有一個引起它變化的原因,小編遇到的最大的問題是對職責的定義,什麼是類的職責,以及怎麼劃分類的職責,這需要靠個人經驗界定。
目的:降低類的複雜性,可讀性提高,可維護性提高。
裡式代換原則:Liskov Substitution Principle
定義:子類繼承父類,單獨完全可以執行
任何基類出現的地方,子類一定可以出現。LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加行的行為。
舉例:球類,原本是一種體育用品,他的衍生類有足球、籃球等等,如果衍生類替換了基類的原本方法,如把體育用品改為了食用品(那麼軟體單位的功能受到影響),就不符合歷史代換原則。
目的:對實現抽象化的具體步驟的規範。
依賴倒轉原則:Dependence Inversion Principle
定義:高層模組不應該依賴底層模組,兩個都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象
該原則針對介面程式設計,而不是針對實現程式設計,引用一個物件,如果這個物件有底層型別,直接引用底層型別。
舉例:以計算機系統為例,無論主機板、CPU、記憶體、硬體都是針對介面設計的,如果針對實現設計,記憶體就要對應到針對某個品牌的主機板,那麼如果需要換記憶體必須得吧主機板也換掉,不符合設計原則。
目的:降低模組間的耦合度。
介面隔離原則:InterfaceSegregation Principles
定義:一個類對另一個類的依賴應建立在最小的介面上
為每個類建立專用的介面,而不要試圖去建立一個很龐大的介面供所有依賴它的類呼叫,客戶端也不應該依賴它不需要的介面,每一個介面應該是一種角色。
舉例:登陸和註冊屬於使用者模組的兩個介面,比寫成一個介面好。
目的:提高程式設計的靈活性。
注:介面儘量小,但是要有限度。介面太小會造成介面數量過多,是設計複雜化,所以介面要適度。
迪米特原則:Law of Demeter
定義:一個實體應當儘量少的與其他實體之間發生相互作用
迪米特原則也叫”最少知道原則“,一個物件應對其他物件有儘可能少的瞭解(只與你的直接朋友交談,不跟“陌生人”說話)。
舉例:一個公開的public屬性或方法越多,修改時涉及的面也就越大,變更引起的風險也就越大。
目的:降低類之間的耦合,減少對其他類的依賴。
開閉原則:Open Close Principle
定義:對擴充開放,對修改關閉
所有物件導向的核心,在程式需要進行擴充的時候,不能去修改原有的程式碼,實現一個熱插拔的效果(靈活的去除或新增功能,不影響到原有的功能)。
目的:提高程式的可擴充性,易於維護和升級。
相關文章
- 設計模式——六大原則設計模式
- 設計模式六大原則設計模式
- 設計模式六大原則(六)----開閉原則設計模式
- 設計模式之六大原則設計模式
- 設計模式的六大原則設計模式
- Python設計模式六大原則!Python設計模式
- 設計模式六大原則詳解設計模式
- 設計模式“6”大原則!設計模式
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式六大原則(五)----迪米特法則設計模式
- 聊一聊設計模式(一)-- 六大原則設計模式
- 設計模式的分類和六大原則設計模式
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計模式 -- 設計模式七大原則設計模式
- 設計類六大原則
- 設計模式之7大原則設計模式
- 設計模式七大原則設計模式
- 設計模式:物件導向設計的六大原則 (絕對詳細)設計模式物件
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 婚戀app原始碼設計模式六大原則有哪些?APP原始碼設計模式
- Python設計模式的六大原則分別是什麼?Python設計模式
- 設計模式的七大原則設計模式
- 好程式設計師Java培訓分享Java設計模式的六大原則程式設計師Java設計模式
- OA系統設計的六大原則
- Java的設計模式和6大原則Java設計模式
- 設計模式六大設計原則設計模式
- 設計模式-六大設計原則設計模式
- 設計模式的七大原則詳解設計模式
- 設計模式的七大原則(5) --開閉原則設計模式
- 六大原則
- 設計模式的七大原則(6) --迪米特法則設計模式
- 設計模式的七大原則(4) --里氏替換原則設計模式
- 設計模式的七大原則(2) --介面隔離原則設計模式
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- 設計模式的七大原則(1) --單一職責原則設計模式
- 好程式設計師Java教程分享Java設計模式的6大原則程式設計師Java設計模式
- 軟體六大設計原則和設計模式設計模式