软件构造6

Programing for/with reuse
1、Programing for reuse 开发可复用的软件
开发成本高于一般软件的成本:要有足够高的适应性
性能差些:针对更普适场景,缺少足够的针对性
2、Programing with reuse 使用已有软件进行开发
可复用软件库,对其进行有效的管理
往往无法拿来就用,需要适配

最主要的复用是在代码层面,但软件构造过程中的任何实体都可能被复用。
1、代码层面:
软件构造6
2、类复用:
inheritance继承
delegation委托
3、包复用: API/Package
4、System-level reuse: Framework 框架
框架:一组具体类、抽象类、及其之间的连接关系
开发者根据framework的规约,填充自己的代码进去,形成完整系统;
将framework看作是更大规模的API复用,除了提供可复用的API,还将这些模块之间的关系都确定下来,形成了整体应用的领域复用
开发者:增加新代码、对抽象类进行具体化

LSP——Liskov Substitution Principle Liskov替换原则
1、Behavioral subtyping 行为子类型
子类型多态:客户端可用统一的方式处理不同类型的对象
软件构造6
2、LSP
软件构造6