在第四章学习如何通过一些方法提高软件的可复用性:如何构造出可以在不同应用中重复使用的软件模块
1.什么是软件的可复用性
目前来说软件的可复用性是不现实的。
软件的复用可以从两方面展开:
1)面向复用的编程:开发出可复用的软件
2)基于复用编程:利用已有的可复用软件搭建应用系统
2.最抽象的模块最能被复用(越抽象的模块可复用性越强)
3.为什么要可复用?
1)降低成本和开发时间
2)经过充分测试,可靠、稳定
3)标准化,在不同应用中保持一致
4.如何衡量可复用性?
1)复用的机会与场合
2)复用的代价
5.可复用性的层级
最主要的可复用是在代码层面,但软件构造过程中的任何实体都可能被复用(不只是代码)
白盒复用:源代码课件,可修改和扩展。复用方式:继承。可定制化程度高但是软件复杂度增加。
黑盒复用:源代码不可见,不能修改。复用方式:调用。 简单清晰安全但是适应性差些。
1)复用的层级:
(1)最简单最舒适:代码层级的复用。(不推荐)如copy代码
(2)模块层级的复用:类的复用,通过API把具体功能给用户。复用类的方案:继承(白盒复用)、委托(黑盒复用)
(3)库文件的复用:如创建一个List就用到了库函数,通过API调用相应的操作来完成。需要用到-—>在库文件里查找—>拿来用。
(4)基于框架层级的复用:领域知识的复用。1)白盒复用:通过代码层面的继承。基本功能实现,框架没有实现的特定的功能用户去重写来实现,如果要增加新的功能就继承这个模板然后重写。2)黑盒框架:把想扩充的功能通过API放入。
6.软件的可复用性的基本原则:
1)类型可变(泛型)
2)实现可变
3)功能分组
4)表示独立
5)共性抽取