設計模式(一) 開放封閉原則

2021-06-15 02:47:58 字數 814 閱讀 8590

開放封閉原則:乙個軟體實體(如類、模組和函式)應該對擴充套件開放,對修改封閉。

開放封閉原則指的是:既然需求一定會隨著時間發生變化,軟體只有適應變化。但是,較好的方式是通過擴充套件軟體實體的方式應對變化,而不是通過修改原有**來適應變化。

開放封閉原則要求對修改關閉,但不做任何修改也是不可能的。

當變化發生時,我們盡量建立抽象層來隔離以後發生同類的變化.

變化大概可分為如下類別:

1.邏輯變化:乙個業務邏輯具體的處理演算法變化,而且是乙個模組內部的變化,不涉及其他模組。這時,修改原有模組內的具體演算法來應對比較好。

2.底層模組變化:低層模組變化必然需要與其耦合的高層模組做適當的修改來適應。

3.表現層變化:這種變化不是指的僅僅外觀變化,而是指介面變化後需要業務邏輯做修改來變現的變化。此時就與原有設計是否較好的符合開放封閉原則有很大的關係。

開放封閉原則的好處:

1.有利於進行單元測試,減少變化給測試帶來的工作量。

2.有利於業務邏輯的細化,提高**的復用性。

3.通過擴充套件應對變化,提高系統的可維護性。

4.物件導向開發的要求。

開放封閉原則要求:

1.盡量使用「抽象」進行約束與聯絡。抽象的關係一旦制定,一般不要修改,因為所有模組的耦合是通過抽象的介面來進行的,修改抽象就意味著相關的所有模組都要進行修改。

2.專案契約要有非常強的約束力。專案一定產生乙個規定,就要求所有成員遵守。

3.在有可能產生變化的點就要用」抽象「進行封裝。

開放-封閉原則是物件導向的核心.開放人員應該對程式中頻繁變化的不分做出抽象,拒絕過分抽象和不成熟的抽象.

———設計模式之禪

設計模式原則 開放 封閉原則

定義 軟體實體應該是可以擴充套件,但是不可修改,對擴充套件開放,對更改封閉 場景 某公司需要招聘3類員工,分別是 主管,程式設計師,銷售。公司根據不同的員工的需求,配置不同的資源。比如程式設計師應該配台電腦。首先定義乙個 員工型別 列舉 using system using system.colle...

設計模式 開放封閉原則

物件導向設計原則中,最重要的原則就是此原則。開放封閉原則解釋 軟體實體 類,模組,函式等 應該是可以擴充套件的,但是是不可以修改的。開放封閉原則有兩大特徵要牢記 一 對於擴充套件是開放的 二 對於修改是封閉的 為什麼要用到開放封閉原則?我們在做任何系統的時候,都不要指望系統一開始就需求確定,這是不現...

設計模式 開放封閉原則

物件導向設計原則中,最重要的原則就是此原則。開放封閉原則解釋 軟體實體 類,模組,函式等 應該是可以擴充套件的,但是是不可以修改的。開放封閉原則有兩大特徵要牢記 一 對於擴充套件是開放的 二 對於修改是封閉的 為什麼要用到開放封閉原則?我們在做任何系統的時候,都不要指望系統一開始就需求確定,這是不現...