软件构造笔记 5.1 Metrics, Morphology and External Observations of Reusability
1. 可复用 面向复用编程 :开发出复用的软件。 基于复用编程:利用已有的可复用软件搭建应用。 复用的原因:降低成本和开发时间;经过充分测试,可靠、稳定;标准化,在不同应用中保持一致。 开发可复用的软件成本高于一般软件的成本,因为需要足够高的适应性;性能也会差一些,因为针对更普遍的场景,缺少足够的针对性。使用可复用软件库可以对其进行有效的管理。 衡量可复用性 高可复用性应该满足:小、简单;与标准兼容;灵活可变;可扩展;泛型、参数化;模块化;变化的局部性;稳定;丰富的文档和帮助; 2. 可重用组件的级别和形态 1)源代码的复用:将部分代码 / 全部复制 / 粘贴到程序中。存在维护问题;需要在多个地方更正代码;使用太多的代码(很多版本)。在处理过程中出现高度错误风险,要知道如何使用的软件工作,需要访问源代码。 2)模块级别的复用:类和接口,类是代码重用的原子单元,不需要源代码,类文件或 jar / zip ,只需要包含在类路径中。文档非常重要( Java API );封装有助于重复使用;管理的代码较少;版本控制,向后兼容仍然存在问题;需要将相关类组合在一起 - 静态链接。 委托(delegation):委托就是当一个对象依赖另一个对象来实现其功能的某个子集时(一个实体将某个事物传递给另一个实体)。 显式委托:将发送对象传递给接收对象 隐式委派:通过语言的成员查找规则