介紹:乙個軟體實體如類,模組和函式應該對擴充套件開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現擴充套件細節。
//使用方 用於繪圖的類
class
graphiceditor
else
if(s.m_type==2)
else
if(s.m_type==3)
}public
void
drawrectangle
(shape r)
public
void
drawcircle
(shape r)
public
void
draw********
(shape r)
}class
shape
class
rectangle
extends
shape
}class
circle
extends
shape
}class
********
extends
shape
}public
class
ocp}
缺點:違反了設計模式的ocp原則,對擴充套件開放(提供方),對修改關閉(使用方),當我們給類增加新功能時,盡量不修改**或盡可能少修改**
改進思路:建立shape類作為抽象類,並提供乙個抽象的draw方法,讓子類去實現。當有新的圖形種類,只需讓新的圖形類繼承shape,並實現draw方法即可。
使用方**不需要修改—》滿足開閉原則
設計模式 開閉原則
開閉原則的核心是 對擴充套件開放,對修改關閉 白話意思就是我們改變乙個軟體時 比如擴充套件其他功能 應該通過擴充套件的方式來達到軟體的改變,而不應愛修改原有 來實現變化 軟體系統中包含的各種元件,例如模組 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...