軟體設計中的六大原則 開閉原則

2021-10-08 12:53:56 字數 1454 閱讀 4242

設計模式六大原則:單一職責原則

設計模式六大原則:介面隔離原則

設計模式六大原則:依賴倒置原則

設計模式六大原則:黎克特制替換原則

設計模式六大原則:迪公尺特法則

設計模式六大原則:開閉原則

設計模式六大原則:開閉原則開閉原則(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 從某種程度上看,介面隔離原則就是介面版...

軟體設計六大原則

單一職責原則 可以降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多 提高類的可讀性,提高系統的可維護性 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改乙個功能時,可以顯著降低對其他功能的影響。黎克特制替換原則 子類可以實現父類的抽象方法,但不能覆蓋父類的非...

設計模式六大原則 開閉原則

定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...