Java與模式 「開 閉」原則

2021-06-19 15:44:26 字數 834 閱讀 2570

「開—閉」原則講的是:乙個軟體實休應當對擴充套件開放,對修改關閉,這一原則最早同bertrand meyer提出,英文原文是:

software entities should be open for extension,but closed for modification.

這個原則所說是,在設計乙個模組的時候,應當使這個模組可以在不修改的前提下被擴充套件。換言之,應當可以在不必修改源**的情況下改變這個模組的行為。

這話聽上去好像矛盾,但後面給出的幾個物件導向的設計原則和設計模式很具體地的說明如何在調計上做到這上點。

所有的軟體系統都有乙個共同的性質,即對它們的需求都會隨時間的推移而發生變。在軟體系統面臨新的需求時,系統的設計必須是穩定的。滿足 「開—閉」原則可以給乙個軟體系統兩個無可比擬的優越性:

.通過擴充套件已有的軟體系統,可以提供新的行為。以滿足對軟體的新需求,使變化中的軟體系統有一定的適應性和靈活性。

.已有的軟體模組,特別是最重要的抽象層不能修改,這就使變化中的軟體系統有一定的穩定性和延續性。

怎樣做到「開—閉」原則

當年大鬧天宮時的美猴王便是玉帝天庭的新挑戰。美猴王說:「皇帝輪流做,明年到我家。只教他搬出去,將天宮讓與我」,對於這項挑戰,大白金星給玉皇大帝提出的建議是:「降一道招安聖旨,把他宣來上界,與他籍名在籙...一則不用勞師動眾,二則收仙有道也。」

換言之,不勞師動眾、不破壞天規便是「閉」,收仙有道便是「開」,招安之法便是玉帝天庭的「開—閉」原則,通過給美猴王封乙個「弼馬溫」的官職,便可使現有系統滿足變化了的需求,而不必更心天庭的既有秩序。如下圖:

Java與模式 讀書筆記 開閉原則

開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這一原則最早由bertrand meyer meyer88 提出,英文原文是 software entities should be open for extension,but closed for modification.書中列出...

模式 開閉原則與哲學

開閉原則 對修改關閉,對擴充套件開放。在設計模式中的解釋是這樣的 在軟體設計開發中,不要對原有的 進行修改,通過對原有 進行擴充套件來實現相應功能。初學模式,這段話讀著絕對拗口,甚至是矛盾重重。不修改,怎麼去擴充套件呢?其實,在盡量不修改 的情況下進行擴充套件是可行的的,注意,這裡是 盡量 官方的解...

設計模式 開閉原則

開閉原則的核心是 對擴充套件開放,對修改關閉 白話意思就是我們改變乙個軟體時 比如擴充套件其他功能 應該通過擴充套件的方式來達到軟體的改變,而不應愛修改原有 來實現變化 軟體系統中包含的各種元件,例如模組 modules 類 classes 以及功能 functions 等等,應該在不修改現有 的基...