Java設計思想之遞迴繼承
阿新 • • 發佈:2019-01-31
一個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。
Softeware entities like classes,modules and functions should be open for extension but closed for modifications.
開閉原則的含義是說一個軟體實體應該通過擴充套件來實現變化,而不是通過修改已有程式碼來實現變化。
軟體實體包括以下幾個部分:
- 專案或軟體產品中按照一定的邏輯規則劃分的模組
- 抽象和類
- 方法
開閉原則是為軟體實體的未來事物而制定的對現行開發設計進行約束的一個原則。
注意:開閉原則對擴充套件開放,對修改關閉,並不意味著不做任何修改,低層模組的變更,必然要有高層模組進行耦合,否則就是一個孤立無意義的程式碼片段了。
變化的型別:
- 邏輯變化
- 子模組變化
- 可見試圖變化
一個專案的基本路徑應該是這樣的:專案開發、重構、測試、投產、運維,其中的重構可以對原有的設計和程式碼進行修改,運維儘量減少對原有程式碼修改,保持歷史程式碼的純潔性,提高系統的穩定性。
開閉原則的重要性:
- 開閉原則對測試的影響
開閉原則可是保持原有的測試程式碼仍然能夠正常執行,我們只需要對擴充套件的程式碼進行測試就可以了。
- 開閉原則可以提高複用性
在面向物件的設計中,所有的邏輯都是從原子邏輯組合而來的,而不是在一個類中獨立實現一個業務邏輯。只有這樣程式碼才可以複用,粒度越小,被複用的可能性就越大。
- 開閉原則可以提高可維護性
- 面向物件開發的要求