软件构造(九) 面向复用的软件构造技术

本文探讨了软件复用的重要性,包括降低成本、提高稳定性和标准化。文章详细阐述了如何衡量可重用性,并介绍了可重用组件的四个层次:源代码、模块、库和系统级复用。此外,讨论了设计可复用类的关键原则,如LSP、委托和复合,并解释了不同类型的委托和关联关系。最后,文章提供了几个关于库和框架的示例,如Guava和Apache Commons。
摘要由CSDN通过智能技术生成

1.什么是软件复用

软件重用是使用现有软件组件实现或更新软件系统的过程。

软件复用有两方面:

  • 面向复用编程:开发出可复用的软件
  • 基于复用编程:利用已有的可复用软件搭建应用系统

为什么复用:

  • 降低成本和开发时间
  • 经过充分测试,可靠、稳定
  • 标准化,在不同应用中保持一致

2.如何衡量“可重用性”?

复用的代价:

  • 搜索、获取库的代价
  • 适配、扩展的代价
  • 实例化的代价
  • 与软件其他部分互联的代价

可重用性意味着对构建、打包、分发、安装、配置、部署、维护和升级问题进行明确的管理

一个软件库具有高度可重用性应具有以下特点:

  • 规模小且简单
  • 与标准兼容
  • 灵活可变
  • 可扩展
  • 泛型化,参数化(不需要用户考虑实现)
  • 模块化
  • 变化的局部性
  • 变化需求下的稳定性
  • 丰富的文档和帮助

3.可重用组件的层次和形态

重用级别:

  • 代码(最主要的)
  • 需求
  • 设计、规约
  • 数据
  • 测试用例
  • 文档

几乎所有有关的一切都能拿来复用

3.1 源代码复用

源代码复用是最低级别

类型:

  • 白盒复用
    当代码本身可用时重用代码。通常需要某种修改或适应。于是,就把源码Ctrl+C并Ctrl+V,这是复用
    好处: 可以自定义,以便于适应不同的情况
    坏处: 增加了代码的复杂性,而且你也不一定能看的源码

  • 黑盒复用
    通过API接口来使用,无法修改代码
    好处: 简单,清晰
    坏处: 适应性差

通常都是将源代码组织为库的形式,来进行复用的传播

可重用软件组件的来源:

  • 内部(公司)代码库(Guava)
  • 第三方库(Apache)
  • 语言自身提供的(JDK)
  • 来自教程、示例、书籍等的代码示例。
  • 代码专家或知识渊博的同事
  • 现有系统代码
  • 开源软件

代码搜索网站:

  • grepcode.com
  • github.com/search
  • searchcode.com

杜绝抄袭

3.2 模块级复用:类/接口

类是代码复用的组成单元,不需要源代码,需要一个压缩包jar/zip、一个使用文档

这样的封装是有利于复用的,优点在于管理更少的代码,但是版本控制,向后兼容性仍然存在问题

使用时之将相关类进行静态链接

复用类的方法:

  • 继承(inherita

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值