設計模式七大原則之開閉原則

2021-10-05 08:36:26 字數 1801 閱讀 2631

簡介

開閉原則是程式設計過程中最基礎、最重要的原則,前面講到的幾個原則,也都是為了實現開閉原則。

那麼他是如何開放,又是如何關閉的呢?

例項展示

//這是乙個用於繪圖的類(使用方)

class

graphiceditor

else

if(shape.my_type==2)

else

if(shape.my_type==3)

}//繪製矩形

public

void

drawrectangle()

//繪製圓形

public

void

drawcircle()

//繪製三角形(這是新增的)

public

void

draw********()

}//shape類,基類

class

shape

//矩形類,繼承了shape類

class

rectangle

extends

shape

}//圓形類,繼承了shape類

class

circle

extends

shape

}//新增圖形(三角形),繼承了shape類

class

********

extends

shape

}這一版的**看起來比較容易理解,這是它的優點;但是違反了開閉原則,即對擴充套件開發,對修改關閉,在此**中,我們給類增加新功能(增加三角形)的時候,修改了**,破壞了開閉原則。

public

class

ocp}

//這是乙個用於繪圖的類(使用方)

class

graphiceditor

}//shape類,基類,這是乙個抽象類

abstract

class

shape

//矩形類,繼承了shape類

class

rectangle

extends

shape

//重寫抽象類中的抽象方法

@override

public

void

draw()

}//圓形類,繼承了shape類

class

circle

extends

shape

@override

public

void

draw()

}//新增圖形(三角形),繼承了shape類

class

********

extends

shape

@override

public

void

draw()

}//增加其他的圖形

class

othergraphic

extends

shape

@override

public

void

draw()

}

這麼做,只是對功能進行了擴充套件,並沒有對已有的**進行修改,遵循了開閉原則。

設計模式之七大原則 開閉原則

主要內容 提供方 擴充套件開放,使用方 修改關閉 盡量通過擴充套件實現變化,而不是修改,避免對原來的系統造成威脅 例子class graphiceditor else if s.m type 2 public void drawrectangle shape r public void drawci...

設計模式七大原則之開閉原則

開閉原則是程式設計中最基礎 最重要的設計原則。乙個軟體實體 類 模組 方法等 應該對擴充套件新功能開放,對修改原有功能關閉。用抽象構建框架,用實現擴充套件細節。當軟體需要新增乙個功能時,盡量在原有 基礎上進行擴充套件,而不是修改原有 以書店銷售書籍為例來說明什麼是開閉原則 public inte c...

設計模式七大原則之開閉原則

開閉原則 open close principle 簡稱ocp原則,指的是對擴充套件開放,對修改關閉.3.1 類圖 這裡主要就是通過graphic類可以作出不同的形狀,但是值得關注的是,這裡是通過控制abstractshape實現類的type屬性作出不同的形狀.當我們要擴充套件矩形時,雖然擴充套件開...