開閉原則 物件導向設計原則 小馬同學 Tian

2021-10-10 21:50:40 字數 1170 閱讀 4316

在軟體開發中,為了提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,程式設計師要盡量根據 7 條原則來開發程式,從而提高軟體開發效率、節約軟體開發成本和維護成本。我們將在下面的幾節中依次來介紹這 7 條原則,本節首先介紹開閉原則。

開閉原則(open closed principle,ocp)由勃蘭特·梅耶(bertrand meyer)提出,他在 1988 年的著作《物件導向軟體構造》(object oriented software construction)中提出:軟體實體應當對擴充套件開放,對修改關閉(software entities should be open for extension,but closed for modification),這就是開閉原則的經典定義。

這裡的軟體實體包括以下幾個部分:

專案中劃分出的模組

類與介面方法

開閉原則的含義是:當應用的需求改變時,在不修改軟體實體的源**或者二進位制**的前提下,可以擴充套件模組的功能,使其滿足新的需求。

開閉原則是物件導向程式設計的終極目標,它使軟體實體擁有一定的適應性和靈活性的同時具備穩定性和延續性。具體來說,其作用如下。

1. 對軟體測試的影響

軟體遵守開閉原則的話,軟體測試時只需要對擴充套件的**進行測試就可以了,因為原有的測試**仍然能夠正常執行。

2. 可以提高**的可復用性

粒度越小,被復用的可能性就越大;在物件導向的程式設計中,根據原子和抽象程式設計可以提高**的可復用性。

3. 可以提高軟體的可維護性

遵守開閉原則的軟體,其穩定性高和延續性強,從而易於擴充套件和維護。

可以通過「抽象約束、封裝變化」來實現開閉原則,即通過介面或者抽象類為軟體實體定義乙個相對穩定的抽象層,而將相同的可變因素封裝在相同的具體實現類中。

因為抽象靈活性好,適應性廣,只要抽象的合理,可以基本保持軟體架構的穩定。而軟體中易變的細節可以從抽象派生來的實現類來進行擴充套件,當軟體需要發生變化時,只需要根據需求重新派生乙個實現類來擴充套件就可以了。

下面以 windows 的桌面主題為例介紹開閉原則的應用。

【例1】windows 的桌面主題設計。

[外鏈轉存中…(img-vp75tcug-1606437374851)]

圖1 windows的桌面主題類圖

物件導向設計原則 開閉原則

在軟體開發中,為了提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,程式設計師要盡量根據 7條原則來開發程式,從而提高軟體開發效率 節約軟體開發成本和維護成本。我們將在下面的幾節中依次來介紹這 7 條原則,本節首先介紹開閉原則。開閉原則 open closed principle,o...

物件導向設計原則 開閉原則

軟體實體應當對擴充套件開放,對修改關閉 這裡的軟體實體包括以下幾個部分 專案中劃分出的模組 類與介面方法 開閉原則的含義是 當應用的需求改變時,在不修改軟體實體的源 或者二進位制 的前提下,可以擴充套件模組的功能,使其滿足新的需求。具體來說就是你應該通過擴充套件來實現變化,而不是通過修改原有的 來實...

物件導向設計原則 開閉原則

唯一不變的是不斷的變化,在軟體開發中應該對需求的變化持開放態度,我們要做的就是如何將這種變化對我們現有的成果帶來最小的衝擊。開閉原則直接面對物件導向程式的目標擴充套件性和可維護性,要求對擴充套件開放,對修改關閉 即在不修改原有 的情況下改變模組的行為。該原則是物件導向程式設計的總原則,也是度量程式設...