第五章第一節? 可復用性的度量、形態和外部觀察
面向復用編程(programming for reuse):開發出可復用的軟件
基于復用編程(programming with reuse):利用已有的可復用軟件搭建應用系統
?
代碼復用的類型:
- 白盒復用:源代碼可見,可修改和擴展
- 含義:復制已有代碼到正在開發的系統,進行修改
- 優點:可訂制化程度高
- 缺點:對其修改增加了軟件的復雜度,且需要對其內部充分的了解
- 黑盒服用:源代碼不可見,不能修改
- 含義:只能通過過API接口來使用,無法修改代碼
- 優點:清晰、簡單
- 缺點:適用性差
?
四個級別
1.代碼級別復用Source code reuse
2. 模塊級別復用Module-level reuse::class/interface
3.庫級別的復用Library-level reuse: API/Package
4.框架:System-level reuse: Framework
?## 白盒框架和黑盒框架
框架也可分為白盒框架和黑盒框架兩類。?
- 白盒框架:
- 通過繼承和動態綁定實現可擴展性。
- 通過繼承框架基類并重寫預定義的hook方法來擴展現有功能。
- 通常使用模板方法模式等設計模式來覆蓋hook方法。
- 黑盒框架:
- 通過為可插入框架的組件定義接口來實現可擴展性。
- 通過定義符合特定接口的組件來復用現有功能。
- 這些組件通過委派(Delegation)與框架集成。