标签:检测 表示 反向 框架 复杂 img 成本高 类的方法 就是
第3章介绍了软件构造的核心理论(ADT)与技术(OOP),其核心是保证代码质量、提高代码适应性和复用性。
本章面向一个重要的外部质量指标:可复用性——如何构造出可在不同应用中重复使用的软件模块/API?
5-1节探讨可复用软件的形态与特征,下一节学习“如何构造”。
软件复用是使用现有软件组件实施或更新软件系统的过程。
软件复用的两个观点:
为什么需要复用:
Development for reuse: 开发可复用的软件
Development with reuse: 使用已有软件进行开发
软件可复用性的度量需要考虑:
具有高复用性的软件应该具有以下特征:
JDK中的可重用的库和API:
最主要的复用是在代码层面,但软件构造过程中的任何实体都可能被复用。
代码复用的类型:
相关研究1:如何从互联网上快速找到需要的代码片段?
反向研究:如何从源代码中检测出克隆代码(clone code)?
可以在一些网站例如:grepcode.com;github.com;searchcode.com上搜索代码,进行代码复用。
复用类的方法:
Override
现有的行为库:一组提供可重用功能的类和方法(API)。
开发者构造可运行软件实体,其中涉及到对可复用库的调用。
Java中有很多的库可以复用,例如Guava:Google的Java核心库;Apache Commons等。
框架:一组具体类、抽象类、及其之间的连接关系 。
Framework作为主程序加以执行,执行过程中调用开发者所写的程序。开发者根据 framework的规约,填充自己的代码进去,形成完整系统。
将framework看作是更大规模的API复用,除了提供可复用的API,还将这 些模块之间的关系都确定下来,形成了整体应用的领域复用。开发者的任务就是增加新代码、对抽象类进行具体化。展开来说就是以下几点:
框架也可分为白盒框架和黑盒框架两类。
白盒框架:
黑盒框架:
类型可变(泛型):适应不同的类型,且满足LSP。
提供完备的细粒度操作,保证功能的完整性,不同场景下复用不同的操作(及其组合)。
实现可变:ADT有多种不同的实现,提供不同的representations和 abstract funtion,但具有同样的specification (pre-condition, postcondition, invariants),从而可以适应不同的应用场景。
内部实现可能会经常变化,但客户端不应受到影响。需要实现表示独立性、信息隐藏。
将共同的行为(共性)抽象出来,形成可复用实体 。
标签:检测 表示 反向 框架 复杂 img 成本高 类的方法 就是
原文地址:https://www.cnblogs.com/yry1160300116/p/9220829.html