软件复用是使用现有软件组件实现或更新软件系统的过程。
软件重用的两个视角:
面向复用编程:开发出可复用的软件
基于复用编程:利用已有的可复用软件搭建应用系统
为什么需要复用
降低成本和开发时间
产生可靠的软件
实现标准化,在不同应用中保持一致
可重用组件的级别和形态
代码级别复用
两种类型:
白盒复用:源代码可见,可修改和扩展,复制已有代码当正在开发的系统,进行修改
优点:可定制化程度高
缺点: 对其修改增加了软件的复杂度,且需要对其内部充分的了解
黑盒复用:源代码不可见,不能修改,只能通过API接口来使用,无法修改代码
优点:简单清晰
缺点:适应性差
具有的缺点
维护问题
很容易出现错误
需要使用的软件是如何工作的知识
需要访问源代码
模块级重用:类/接口
类的重用:继承和委托
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的特性
子类拥有父类非private的属性,方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所