1 開閉原則(open close principle)
1.1 定義:乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。
1.2 當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化, 而不是通過修改已有的**來實現變化。
1.3 開閉原則是總綱,他告訴我們要對擴充套件開放,對修改關閉。
2 迪公尺特法則(law of demeter)
2.1 迪公尺特法則又叫最少知道原則
2.2 定義:乙個物件應該對其他物件保持最少的了解
2.3 軟體程式設計的總的原則:低耦合,高內聚
2.4 迪公尺特法則還有乙個更簡單的定義:只與直接的朋友通訊。
2.5 我們稱出現成員變數、方法引數、方法返回值中的類為直接的朋友
3 介面隔離原則(inte***ce segregation principle)
3.1 定義:客戶端不應該依賴它不需要的介面; 乙個類對另乙個類的依賴應該建立在最小的介面上。
3.2 介面是設計時對外部設定的「契約」,通過分散定義多個介面, 可以預防外來變更的擴散,提高系統的靈活性和可維護性。
4 依賴倒置原則(dependence inversion principle)
4.1 定義:高層模組不應該依賴低層模組,二者都應該依賴其抽象; 抽象不應該依賴細節;細節應該依賴抽象。
4.2 依賴倒置原則基於這樣乙個事實:相對於細節的多變性,抽象的東西要穩定的多。 以抽象為基礎搭建起來的架構比以細節為基礎搭建起來的架構要穩定的多。
4.3 依賴倒置原則的中心思想是面向介面程式設計
5 黎克特制替換原則(liskov substitution principle)
5.1 定義2:所有引用基類的地方必須能透明地使用其子類的物件
5.2 黎克特制替換原則通俗的來講就是:子類可以擴充套件父類的功能,但不能改變父類原有的功能。
5.3 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
5.4 子類中可以增加自己特有的方法。
5.5 當子類的方法過載父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入引數更寬鬆。
5.6 當子類的方法實現父類的抽象方法時,方法的後置條件(即方法的返回值)要比父類更嚴格。
6 單一職責原則(single responsibility principle)
6.1 定義:不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。
6.2 職責擴散
6.2.1 所謂職責擴散,就是因為某種原因,職責p被分化為粒度更細的職責p1和p2。
6.2.2 原則是:只有邏輯足夠簡單,才可以在**級別上違反單一職責原則; 只有類中方法數量足夠少,才可以在方法級別上違反單一職責原則;
設計模式之6大原則
軟體程式設計的總原則 高內聚,低耦合。提高 的復用率 耦合的方式 依賴,關聯,組合,聚合等 設計模式之6大原則 1.單一職責原則 乙個類只負責乙個功能領域中的相應職責。是實現高內聚低耦合的指導方針。2.裡式替換原則 所有引用基類的地方必須能透明地使用其子類的物件。子型別必須能夠替換掉它們的父型別 既...
設計模式6大原則簡述
0 前言 這一段時間一直在看設計模式,裡面分多次提到幾個設計原則,看了幾次發現記不清楚,還是得自己動手總結一下吧,把書上的理論先理解寫下來再說嘍。1 單一職責原則 雖說我們要遵守單一職責原則,但是也不是說死板的對每乙個細節都嚴格遵守,也要視情況而定 如果乙個類的邏輯非常簡單且可以保證變化極小,此時可...
設計模式6大原則 總結
1.設計模式6大原則 封裝相關的3個 1,2,3 2.黎克特制替換原則 關注類與類相關直接的類,學校類只關注班級類,不關注學生類 1.任何使用基類的地方,都可以透明 安全,不會行為不一致 的使用其子類 2.子類可以有自己獨有的屬性和行為 3.父類實現的東西,子類不要在寫了 不要new 隱藏 防止出現...