通常認為,一個易於維護的系統,就是一個復用率較高的系統;而一個復用性很好的系統,就是一個易於維護的系統。
但實際上,可維護性和可復用性是兩個獨立的目標。
導致一個軟件設計的可維護性較低的真正原因有四個:
- 過於僵硬:很難在一個軟件系統中添加新的功能,因為新功能的加入會涉及多個模塊的修改。
- 過於脆弱:與軟件過於僵硬同事存在的,是軟件系統在修改已有代碼時過於脆弱,對一個地方的修改,往往會導致看上去沒有什么關系的另一個地方發生故障。
- 復用率低:當程序員發現一段代碼、函數、模塊所做的事情可以在新的模塊、或者新的系統中使用的時候,他們總是發現,這些已有的代碼依賴於一大堆的其他的東西,以至於很難將他們分開。他們可能選擇不去碰這些代碼,也可能以最原始的復制去復用。
- 黏度過高:一個系統設計,總是 破壞原始設計意圖和設計框架 比 遵守原始設計意圖和設計框架 容易,就叫黏度過高。
一個好的系統設計應該有如下的性質:可擴展性、靈活性、可插入性。這三條性質就是一個系統設計的目標。
復用的重要性
1.具有較高的生產效率
2.具有較高的軟件質量
3.恰當使用復用可以提高系統的可維護性