敏捷軟體開發總結 開放 封閉原則(OCP)

2021-09-22 16:40:13 字數 1310 閱讀 5009

任何系統在其生命週期中都會發生變化,那麼怎樣的設計才能面對需求變化而保持相對穩定?著名的開放-封閉原則(ocp)為我們提供了指引。

如果程式中的一處改動就會造成連鎖反應,導致一系列相關模組改動,那麼設計就具有僵化性。ocp建議我們對此重構,這樣以後改動就只需要新增新的**,而不必修改已經正常執行的**。

策略(strategy)模式和模板方法(template method)模式是滿足ocp的最常用方法。

策略(strategy)模式

模組可以呼叫乙個抽象介面,由於模組依賴於乙個固定的抽象介面,所以對於它的更改可以是封閉的。同時通過建立派生類實現該抽象介面,該擴充套件則是開放的。這就是典型的策略(strategy)模式。

例:

public class context 

/*** 策略方法

*/public void contextinte***ce()

}public inte***ce strategy

public class concretestrategya implements strategy

}public class concretestrategyb implements strategy

}public class concretestrategyc implements strategy

}

模板方法(template method)模式

準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法模式的用意。

我們最初編寫**時,假設變化不會發生。一旦發生我們就建立抽象來隔離以後發生的同類變化。

如果我們決定接受第一顆子彈,那麼它來的越早,對我們越有利,因為越往後,建立正確的抽象就越困難。所以我們需要刺激變化。

刺激變化的方式:

1、我們首先編寫測試。測試描繪了系統的一種使用方法。通過編寫測試,我們迫使系統成為可測試的。在乙個具有可測試的系統發生變化時,我們可以坦然對之。因為我們構建了使系統可測試的抽象。並且通常這些抽象中的許多都會隔離以後發生的其他種類的變化。

2、我們使用很短的迭代週期進行開發。

3、我們在加入基礎結構前就開發特性,並且經常性的把特性展示給涉眾。

4、我們首先開發最重要的特性

敏捷軟體開發 敏捷開發原則

編寫單元測試是一種驗證行為,更是一種設計行為。測試時乙個無價的文件。如果你想知道如何呼叫乙個函式或者建立乙個物件,會有乙個測試展示給你看。什麼是設計?不應該認為設計就是一組和 分離的uml圖。一組uml圖也許描繪了設計的一些部分,但是它不是設計。還是要 化 僵化性是指難以對軟體進行改動,即使是簡單的...

軟體設計原則 開放封閉原則

物件導向軟體設計遵循的原則 1.開放閉合原則 全稱 open closed principle 開放 封閉原則 說明 對擴充套件開放,對修改關閉。優點 按照ocp 原則設計出來的系統,降低了程式各部分之間的耦合性,其適應性 靈活性 穩定性都比較好。當已有軟體系統需要增加新的功能時,不需要對作為系統基...

敏捷軟體開發宣言與原則

technorati 標籤 敏捷軟體開發 核心內容 1.個體和互動 勝過 過程和工具 2.可以工作的軟體 勝過 面面俱到的文件 3.客戶合作 勝過 合同談判 4.響應變化 勝過 遵循計畫 啟示 1.人是獲得成功的最為重要的因素,記住,團隊的構建要比環境的構建重要的多。一般的程式設計水平 良好的合作 ...