5.1可复用性
1.
Programming for reuseProgramming with reuse二者的区别:
for:开发可复用的软件;with:用可复用的软件开发自己的软件
for:难点在于抽象
(abstraction),让开发出的软件能适应于不同但相似的应用场合
with:难点在于适配
(adaption),让自己的软件与来自外部的软件之间做好恰当的连接
2.
Lab2中,你开发了Graph<L>,然后在FriendShipGraph中使用Graph<L>表示人与人之间的社交网络,此为
Module level reuse
3.
为了让你的Lab2具备可视化功能,你决定复用Lab1的TurtleGraphics,于是在代码里加入import turtle.*, 然后在中用Turtle的相关类和方法执行图的可视化,此为
Library level reuse
解析:
潜藏的操作是你必须将turtle的jar包或.class目录加入你的项目path中。该jar表示个可复用的外部library。就如同:为了让你的程序具备Junit测试能力,你必须将junit.jar放入你的path里。
4.
你在GitHub_上搜索了某个ConvexHull的算法,将其代码复制到你的Lab1中,这属于
Code level reuse
答案解析: 
虽然不算“剽窃”,但如果你的软件投入商业用途,必须要遵循对方的开源许可协议
5.
以下技术对开发高可复用性的软件有积极意义
泛型/参数化,例如Graph<L>中的<L>
使用interface定义操作,而非用class直接实现op
设计和实现abstract class
使用override和overload
将ADT的rep设置为private和final,并避免表示泄露
精心撰写符合要求的spec并生成Java Doc
6.
Framework是一种典型的复用形态,它与传统的API复用存在区别,以下正确的是
API复用是将外部开发的API放到自己的代码中去调用,自己的代码是可执行程序的主体
Framework复用是将自己的代码填充到framework中,可执行程序的主体是framework
API复用的学习周期短,framework复用的学习周期较长
不正确的:
API复用的粒度大,framework复用的粒度小

转载于:https://www.cnblogs.com/HIT-ryp/p/10648562.html

雨课堂知识点总结(十三)相关推荐

  1. 雨课堂知识点总结(十七)

    8.4 动态性能分析方法与工具 1. 以下关于Dynamic Program Analysis的说法,不正确的是__ A 根据程序执行的过程与结果,分析代码在时空性能方面所展现出的性质 B 对程序执行 ...

  2. 雨课堂知识点总结(七)

    3.1 1.Java中的Primitive Type(int,char,boolean等)和Object Type(String,Boolean,Calendar)的差异是 前者在Stack中分配内存 ...

  3. 雨课堂知识点总结(十一)

    3.4Object-Oriented Programming(OOP) 1.关于static和final的说法,正确的是: static类型的方法,调用时无需创建类的实例对象,可直接通过类名使用 被声 ...

  4. 雨课堂知识点总结(十二)

    3.5 Equality 1. ADT的equals( )需要满足的三个性质是[填空1]性.[填空2]性. [填空3]性 答案: 自反性;对称性;传递性; 2. 以下针对ADT等价性的说法,不正确的是 ...

  5. 雨课堂知识点总结(二十)

    8-2 内存性能与垃圾回收 第一题 关于内存管理的三种模式(static.stack.heap) ,不正确的是 A Static在编译阶段为各变量分配内存,不支持运行时变量扩展内存,但支持运行时为新变 ...

  6. 雨课堂知识点总结(十八)

    10-1 Concurrency 第一题 以下是计算机系统中的concurrency现象? A手机上的一个App通过5G网络访问云端数据 B四核CPU,执行多道程序 C使用Observer设计模式的J ...

  7. 雨课堂知识点总结(八)

    3.1(B) 1,关于mutable和immutable的说法正确的是: 所有的简单数据类型和所有相对应的封装类(Integer,Double,Boolean等)都是immutable的 所有数组都是 ...

  8. 雨课堂知识点总结(十)

    3.3ADT 1.类WordList有四个方法,根据其方法定义来确定其类型 <1>public WordList(List<String> words) <2>pu ...

  9. 雨课堂知识点总结(九)

    3.2 Specification 1.两个方法具有"行为等价性(behavior equivalence)": 站在客户端的角度看,它们实现相同的功能 站在客户端的角度看,它们可 ...

最新文章

  1. 深度学习之眼睛状态识别混淆矩阵的绘制
  2. Android学习笔记(八)XML文档的解析
  3. 快捷登录PHP,phpcms 微信快捷登陆
  4. 你怎么看待 Bug?
  5. 2015.10.13课堂
  6. 基于SSM的医院药品管理系统答辩PPT模板
  7. 数据库优化的几种方法
  8. shell脚本使用getopts自定义传入参数选项
  9. Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
  10. android高德地图自定义地图,Android集成高德地图如何自定义marker
  11. python----语句
  12. Matlab 绘制多条曲线,方法!
  13. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc
  14. 使用腾讯云函数每天定时签到领取京豆
  15. CSS 选择器 :last-child与:last-of-type的区别
  16. firefox v46如何添加xpath checker组件
  17. TED很火,如何利用TED学习英语
  18. Qt编写地图综合应用41-在线轮廓图
  19. eb8000软件怎样上传_EB8000程序上传与下载
  20. 生成微信小程序码、URL Scheme和URL Link

热门文章

  1. Altium DesignerPCB内部走线角度切换 直线切换圆弧
  2. 计算机基础知识之了解计算机,计算机基础知识(计算机基础知识你了解吗?)...
  3. 计算机系统最大的加速能力,w7系统优化加速到最大性能
  4. java 将字符串首字母变大写
  5. 软件工程之开发与测试对缺陷重现条件的常见误解
  6. 清晨,赶路,感觉像孤魂野鬼,没有归宿感
  7. redis使用队列进行抢购活动(秒杀)
  8. linux开启mysql窗口_通过window(Navicat)访问linux中的mysql数据库
  9. nginx 拦截非法字符,nginx禁止url访问特定字符,nginx过滤url访问
  10. [极客大挑战 2019]Secret File