設計模式 - 開閉原則
即 對立與統一原則
軟體實體應該對擴充套件開放,對修改關閉,即實體應當通過擴充套件實現變化,而不是修改**實現變化
什麼是軟體實體,專案或軟體中按照一定邏輯規劃劃分的模組書店銷售書籍抽象 類
方法
然後書寫**如下
// 書籍介面
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中新增即可。
總結 ; 對擴充套件開放,前提對抽象約束。
即,使用配置引數,控制模組行為。
類的職責要單一
黎克特制替換原則不能破壞繼承
即,子類物件,可以代替超類。
面向介面。
即,每個介面只負責幹一件事。
每個介面只幹一件事
通訊通過類之間通訊。兩者之間耦合度越少越好。
對擴充套件開放,對修改關閉
www.iming.info
設計模式 開閉原則
開閉原則的核心是 對擴充套件開放,對修改關閉 白話意思就是我們改變乙個軟體時 比如擴充套件其他功能 應該通過擴充套件的方式來達到軟體的改變,而不應愛修改原有 來實現變化 軟體系統中包含的各種元件,例如模組 modules 類 classes 以及功能 functions 等等,應該在不修改現有 的基...
設計模式 開閉原則
設計模式 開閉原則 即 對立與統一原則 軟體實體應該對擴充套件開放,對修改關閉,即實體應當通過擴充套件實現變化,而不是修改 實現變化 什麼是軟體實體,專案或軟體中按照一定邏輯規劃劃分的模組 抽象 類 方法書店銷售書籍 然後書寫 如下 書籍介面 public inte ce ibook 書店 類書籍,...
設計模式 開閉原則
ocp原則 開閉原則 1 對外能擴充套件 提供方 2 對修改關閉 使用方 下面這段 實現了繪製形狀的功能,如果設計如下 package ocp author lihaiyu date 2020 11 8 20 50 public class ocp 這是乙個用於繪製圖形的類,使用方 class gr...