設計模式 開閉原則

2021-09-13 01:13:31 字數 1872 閱讀 3316

設計模式 - 開閉原則

即 對立與統一原則

軟體實體應該對擴充套件開放,對修改關閉,即實體應當通過擴充套件實現變化,而不是修改**實現變化

什麼是軟體實體,專案或軟體中按照一定邏輯規劃劃分的模組

抽象 類

方法

書店銷售書籍

然後書寫**如下

// 書籍介面

public inte***ce ibook

書店****類書籍,書寫**

public class noveibook implements ibook 

// 獲得作者

public string getauthor()

// **

public string getprice()

// 名字

public string getname()

}

其中,**定義為int,不是錯誤,非金融類專案,取兩位精度,運算過程中,擴大100倍,展示時縮小100倍。

售書

public class bookstore 

// 買書

public static void main(string args)}}

然後,發生打折。

修改介面

介面不應該修改,因為介面是持久的

修改實現類

修改getprice()方法達到打折的目的。

但是,因為採購書籍的人,要看到實現的**。所以不修改

擴充套件實現

再增加乙個子類,如下

**如下

// 打折銷售的**

public class offnovelbook extends noveibook

// 覆蓋銷售

@override

public int getprice()

}

接著修改main裡面的內容即可。

變化分為邏輯變化,子模組變化,可見檢視變化。

抽象約束對一組事物的描述。

當商店增加了乙個計算機書籍的銷售。但是計算機書籍還有很多種,有程式語言,資料庫等。

// 增加計算機書籍介面

public inte***ce icomputerbook extends ibook

同樣的,書寫計算機書籍類

public class computerbook implements icomputerbook

public string getscope()

public string getname()

public int getprice()

}

直接在main中新增即可。

總結 ; 對擴充套件開放,前提對抽象約束。

即,使用配置引數,控制模組行為。

類的職責要單一

黎克特制替換原則不能破壞繼承

即,子類物件,可以代替超類。

面向介面。

即,每個介面只負責幹一件事。

每個介面只幹一件事

通訊通過類之間通訊。兩者之間耦合度越少越好。

## 開閉原則

對擴充套件開放,對修改關閉

設計模式 開閉原則

開閉原則的核心是 對擴充套件開放,對修改關閉 白話意思就是我們改變乙個軟體時 比如擴充套件其他功能 應該通過擴充套件的方式來達到軟體的改變,而不應愛修改原有 來實現變化 軟體系統中包含的各種元件,例如模組 modules 類 classes 以及功能 functions 等等,應該在不修改現有 的基...

設計模式 開閉原則

ocp原則 開閉原則 1 對外能擴充套件 提供方 2 對修改關閉 使用方 下面這段 實現了繪製形狀的功能,如果設計如下 package ocp author lihaiyu date 2020 11 8 20 50 public class ocp 這是乙個用於繪製圖形的類,使用方 class gr...

開閉原則 設計模式

介紹 乙個軟體實體如類,模組和函式應該對擴充套件開放 對提供方 對修改關閉 對使用方 用抽象構建框架,用實現擴充套件細節。使用方 用於繪圖的類 class graphiceditor else if s.m type 2 else if s.m type 3 public void drawrect...