開閉原則 設計模式

2021-10-24 02:22:32 字數 1484 閱讀 8215

介紹:乙個軟體實體如類,模組和函式應該對擴充套件開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現擴充套件細節。

//使用方   用於繪圖的類

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...