- 定義:當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求
這裏的軟件實體包括以下幾個部分:
1、項目中劃分出的模塊
2、類與接口
3、方法
- 作用
對軟件測試的影響:軟件測試時只需要對擴展的代碼進行測試就可以了
可以提高代碼的可複用性:粒度越小,被複用的可能性就越大;在面向對象的程序設計中,根據原子和抽象編程可以提高代碼的可複用性。
可以提高軟件的可維護性:遵守開閉原則的軟件,其穩定性高和延續性強,從而易於擴展和維護。
- 實現方法:抽象約束、封裝變化
通過接口或者抽象類爲軟件實體定義一個相對穩定的抽象層,而將相同的可變因素封裝在相同的具體實現類中。