1.單一職責原則
即乙個類只負責一項職責,不要存在多於乙個導致類變更的原因
2.黎克特制替換原則
子類可以擴充套件父類的功能,但是不能改變父類原有的功能 :
子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法
子類可以增加自己持有的方法
當子類過載父類的方法時,方法的形參要比父類方法的輸入引數更寬鬆
當子類方法實現父類的抽象方法時,方法的返回值要比父類更嚴格
父類 變數名=new 子類();
3.依賴倒置原則
高層模組不應該依賴底層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。
面向介面程式設計:
先把客戶的業務邏輯線提取出來,作為介面,業務具體實現通過該介面的實現類來完成。 當客戶需求變化時,只需編寫該業務邏輯的新的實現類,通過更改配置檔案(例如spring框架)中該介面 的實現類就可以完成需求,不需要改寫現有**,減少對系統的影響。
4.介面隔離原則
客戶端不應該依賴它不需要的介面;乙個類對另乙個類的依賴應該建立在最小的介面上。
建立單一介面,盡量細化介面,介面中的方法盡量少,要為各個類建立專用的介面,不要建立龐大的介面供所有依賴它的類去呼叫。
提高內聚,減少對外互動,用最少的方法去完成最多的事情。
5.迪公尺特法則(最少知道原則)
乙個物件應該對其他物件保持最少的了解。類與類的關係越密切,耦合越大,當乙個類發生變化的時候對另乙個類的影響也越大,盡量降低類與類之間的耦合。原則:低耦合,高內聚。
在採用最少知道原則時要反覆權衡,做到結構清晰又高內聚低耦合。
6.開閉原則
乙個軟體實體如類,模組和函式應該對擴充套件開發,對修改關閉。軟體變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。軟體實體盡量在不修改原有**的情況下擴充套件,盡量不改,只增加。
只要我們前面的五種原則遵守好了,自然是符合開閉原則
總結:單一原則告訴我們實現類要職責單一;黎克特制替換原則告訴我們不要破壞繼承體系;
依賴倒置告訴我們要面向介面程式設計;介面隔離原則告訴我們在設計介面的時候要精簡單一;
迪公尺特法則告訴我們要降低耦合;開閉原則是總綱,他告訴我們要對擴充套件開發,對修改關閉。
設計模式的6大原則
1 開閉原則 open close principle 1.1 定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。1.2 當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的 來實現變化。1.3 開閉原則是總綱,他告訴我們要對擴充套件開放,對修改關閉。2 ...
設計模式之6大原則
軟體程式設計的總原則 高內聚,低耦合。提高 的復用率 耦合的方式 依賴,關聯,組合,聚合等 設計模式之6大原則 1.單一職責原則 乙個類只負責乙個功能領域中的相應職責。是實現高內聚低耦合的指導方針。2.裡式替換原則 所有引用基類的地方必須能透明地使用其子類的物件。子型別必須能夠替換掉它們的父型別 既...
設計模式6大原則簡述
0 前言 這一段時間一直在看設計模式,裡面分多次提到幾個設計原則,看了幾次發現記不清楚,還是得自己動手總結一下吧,把書上的理論先理解寫下來再說嘍。1 單一職責原則 雖說我們要遵守單一職責原則,但是也不是說死板的對每乙個細節都嚴格遵守,也要視情況而定 如果乙個類的邏輯非常簡單且可以保證變化極小,此時可...