第五章第一节 可复用性的度量、形态和外部观察
面向复用编程(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)与框架集成。