設計模式六大原則:單一職責原則
設計模式六大原則:介面隔離原則
設計模式六大原則:依賴倒置原則
設計模式六大原則:黎克特制替換原則
設計模式六大原則:迪公尺特法則
設計模式六大原則:開閉原則
設計模式六大原則:開閉原則開閉原則(open close principle):
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.
軟體設計的過程中對於軟體物件如:類,模組和方法等,應該遵守可以(開放)擴充套件,但是不允許(關閉)修改原則。
而開閉原則是六大設計原則的基礎,是其他另外五個設計原則必須遵守的乙個基本原則。
那麼我們如何實現乙個開閉原則呢?show code
首先定義乙個介面,因為介面也有繼承性,定義的時候定義乙個介面物件就可以操作其實現類的所有操作。
package com.jackray.springbootdemo.service;
public inte***ce icourse
定義乙個dao實現了上面的介面
package com.jackray.springbootdemo.dao;
import com.jackray.springbootdemo.service.icourse;
public class course implements icourse
@override
public string getcoursename()
@override
public string getcoursecode()
@override
public double getcourseprice()
}
實現乙個打折的類繼承原來的dao類和介面,在不不修改原來的類的基礎之上,進行新功能的增加。
package com.jackray.springbootdemo.service;
import com.jackray.springbootdemo.dao.course;
public class opencourse extends course
public double discountprice()
}
測試,不修改原來的類的基礎上,實現了打折服務。
public static void main(string args)
測試結果拿到了原來的**和打折之後的**。
打折前**:100.0 打折後**:80.0
大概如此,這裡僅僅是乙個開閉原則基本demo,這樣的設計在工作的時雖然簡單但是為程式提供了很好擴充套件性。 軟體設計六大原則
單一職責原則,srp 功能職責單一,只能擁抱一種變化。黎克特制替換原則,lsp 所有在使用父類的情況,都可以用子類替換。繼承的子類不能改動父類已實現的功能。依賴倒置原則,dip 高層通過抽象依賴低層,細節應該依賴抽象,抽象不應該依賴於細節。介面隔離原則,sip 從某種程度上看,介面隔離原則就是介面版...
軟體設計六大原則
單一職責原則 可以降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多 提高類的可讀性,提高系統的可維護性 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改乙個功能時,可以顯著降低對其他功能的影響。黎克特制替換原則 子類可以實現父類的抽象方法,但不能覆蓋父類的非...
設計模式六大原則 開閉原則
定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...