从类,API,框架三个层面学习如何设计可复用软件实体的具体技术学习心得

从类,API,框架三个层面学习如何设计可复用软件实体的具体技术学习心得

软件复用

定义

软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

优点

  • 提高生产率
  • 减少维护代价
  • 提高互操作性
  • 支持快速原型

面临的挑战

  • 软构件与应用系统之间的差异。
  • 软构件要达到一定的数量,才能支持有效的复用,而建立软构件库要有很高的投入和长期的积累。
  • 难以发现合适的软构件。
  • 基于复用的软件开发方法和软件过程是一个新的研究实践领域,需要一些新的理论、技术及支持环境,目前这方面的研究成果和实践经验都不够充分。

软件复用的关键技术因素

image-20220618192455189

如何设计?

继承

面向对象的开发语言中自然少不了继承,有了继承,就可以使子类拥有父类的属性和方法,这也是一种复用,甚至可以说是十分重要的一种复用,子类可以不用将某些方法

委托

在java中类直接调用这个类的static方法,类似c语言中的函数,直接调用就行,这样也是一种类的复用。类似Math.sprt()这种方法。

API

  • API应该做一件事,且做得很好
  • API应该尽可能小,但不能太小
  • Implementation不应该影响
  • 记录文档很重要
  • 考虑性能后果
  • API必须与平台和平共存
  • 类的设计:尽量减少可变性,遵循LSP原则
  • 方法的设计:不要让客户做任何模块可以做的事情,及时报错

框架

概念

框架是一种软件复用技术,它是一个应用软件系统的部分或整体的可复用设计。框架的具体表现为一组抽象类以及其实例(对象)之间的相互作用方式。它是对于一个软件系统的全部或部分的可复用设计。如一个用户界面框架只提供系统对用户界面的设计,而MacAPP的“Macintosh应用框架”提供了整个应用系统的设计。由定义可知,一个框架是一种面向对象的设计,尽管通常我们看到的框架都是由某种面向对象语言实现的,但从理论上讲它可以不提供面向对象语言的实现。面向对象类库的大力度复用也需要框架,框架提供了类库中被复用组件的上下文关系。

分类

从其功能结构划分,框架可分为白盒(WhiteBox)与黑盒(Black-Box)两种框架。

基于继承的框架被称为白盒框架。所谓白盒,即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架,应用开发者通过衍生子类或重写父类的成员方法来开发系统。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。

应用开发者通过衍生子类或重写父类的成员方法来开发系统。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。

基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,而继承只是一个静态编译时的概念。一般情况下,白盒和黑盒框架将同时应用于系统的开发中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值