雨课堂知识点总结(十三)

 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复用的粒度小

猜你喜欢

转载自www.cnblogs.com/HIT-ryp/p/10648562.html