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

2021-10-10 05:40:32 字數 1563 閱讀 7713

三、注意事項和細節參考

我們來用乙個畫圖的功能來說明。

類圖:

說明:shape類是所有圖形類的基類;graphiceditor類接收shape物件並根據其引數type判斷畫出什麼圖形。

我們在實現這個畫圖功能後,還要新增乙個三角形的畫法。

// 圖形基類

class

shape

// 繼承shape的矩形類

class

rectangle

extends

shape

}// 繼承shape的圓形類

class

circle

extends

shape

}// 新增三角形類,繼承shape類

class

********

extends

shape

}// 繪圖類

class

graphiceditor

private

void

drawrectangle()

private

void

drawcircle()

// 新增繪製三角形方法

private

void

draw********()

}public

class

ocp}

此種實現方式的優缺點

我們可以對方式一中的內容進行改進:把shape類修改為抽象類,提供乙個抽象的draw()方法,並讓其子類進行實現。

這樣當我們需要新增圖形時,只需讓新的圖形類繼承shape類並實現draw()方法即可,而無需修改繪圖類。

// 圖形基類,抽象類

abstract

class

shape

// 矩形類

class

rectangle

extends

shape

}// 圓形類

class

circle

extends

shape

}// 三角形類

class

********

extends

shape

}// 繪圖類

class

graphiceditor

}public

class

ocp}

開閉原則想表達的另一層意思 :用抽象構建框架,用實現擴充套件細節。因為抽象靈活性非常好,適應性廣,使用得當就可以保持軟體架構的穩定;而軟體中易變的細節,可以用從抽象類派生的實現類進行擴充套件,當需求發生變化時,只需重新派生乙個實現類進行拓展就行了。

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

開閉原則,是程式設計中最基礎 最重要的設計原則。乙個軟體實體如類,模組和函式應對外擴充套件開放 對提供方 對修改關閉 對使用方 用抽象構建框架,用實現擴充套件細節。當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的 來實現變化。說白了就是增加了新功能,盡量保證以前的使用...

七大原則 開閉原則

開閉原則 open closed principle,ocp 由勃蘭特 梅耶 bertrand meyer 提出,他在 1988 年的著作 物件導向軟體構造 object oriented software construction 中提出 軟體實體應當對擴充套件開放,對修改關閉 software ...

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

簡介 開閉原則是程式設計過程中最基礎 最重要的原則,前面講到的幾個原則,也都是為了實現開閉原則。那麼他是如何開放,又是如何關閉的呢?例項展示 這是乙個用於繪圖的類 使用方 class graphiceditor else if shape.my type 2 else if shape.my typ...