可复用性

面向复用编程

复用性

软件复用是使用现有软件组件实现或更新软件系统的过程。
复用主要用在

  • 为了复用编程
  • 基于复用编程
    其优势在于
  • 成本有效性和及时性
  • 可生成可靠的软件
  • 标准化
    在这里插入图片描述

同时带来了一些弊端

  • 可复用的组件时空性能往往不如定向开发的同等功能软件

其评价标准为

  • 复用频度
  • 复用成本

对于可复用性,我们期望它:

  • 简单
  • 可移植性和兼容性好
  • 灵活
  • 可扩展
  • 通用和参数化
  • 模块化
  • 将变化限制在局部
  • 稳定

复用分为:

  • 白盒复用:复用代码是可用的,但通常需要一些小改造或适应
  • 黑盒复用:通过提供一些“粘合”以组合现有代码的形式重用,但不必更改代码本身,通常是因为您无法访问代码

在层次上又分为:

  • 代码级
    • 存在问题如下问题
      1. 需要维护多处修改的一致性问题
      2. 过程具有高风险
      3. 需要了解工作原理
      4. 需要访问源代码
  • 模块级
    • 通过类与接口
  • 库级
    • API和包
  • 系统级
    • 框架

在模块级复用上有如下方法

  • 继承
    • 在java中就是extend
  • 委托
    • 调用
    • 联合(老师之于学生,学生之于课堂)
    • 包含(人之于心脏)

:一系列方法和类

对于一个优秀的API需要:

  • 易于学习
  • 易于使用
  • 难以误用
  • 易于保证代码的可读性
  • 足以满足要求
  • 易于升级
  • 适合阅读者

系统级复用
框架:应用框架是包含了接口、抽象类和具体类的可复用程序,使用时需要在其基础上补充所需要的设计元素。

框架与库的对比
类库:

  • 较少特定领域
  • 提供较小的重用范围。
  • 类库是被动的; 对控制流没有约束。
  • 被使用者调用

框架:

  • 类为一系列相关应用程序进行合作。
  • 框架是活跃的; 影响控制流程。
  • 调用使用者代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值