面向复用的软件构造技术
大纲:
▪ 什么是软件重用?
▪ 如何衡量“可重用性”?
▪ 可重用组件的级别和形态
——源代码级别的复用
——模块级别的复用:类/抽象类/接口
——库级别的复用:API/包
——系统级别的复用:框架
▪ 设计可复用的类
——继承与重写
——重载
——参数多态与泛型编程
——行为子类型和 Liskov 替换原则 (LSP)
——组合与委托
▪ 设计可复用库与框架
——API 和库
——框架
——Java 集合框架(一个例子)
programming for reuse(面向复用编程):开发出可复用的软件
programming with reuse(基于复用编程):利用已有的可复用软件搭建应用系统
优点:
很大的适应性
降低成本和开发时间
充分的测试→高可靠、稳定
标准化、在不同应用中保持一致
缺点:针对性不强→性能差(代价高)
白盒复用:源代码可见,可修改和扩展。(复制已有代码到正在开发的系统,进行修改)
优点:可定制化程度高
缺点:对其修改增加了软件的复杂度,且需要对其内部充分的了解
黑盒复用:源代码不可见,不能修改。(只能通过API接口来使用,无法修改代码)
优点:简