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

一. 软件复用
软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件。软件可复用性的高低影响到生产效率的高低、软件质量的好坏和系统可维护性的好坏。
主要介绍一下几个方面的复用:
(一)基于程序库的软件复用
程序库是软件复用最基本、最普通形式。程序库是些经常使用、经过检验的规范化程序或子程序的集合。程序库中的程序是经常使用的功能。程序库通常是编译后的二进制可执行码或虚拟机可执行码,把它们放到目录中,设置环境变量,在程序中引入后就可以如同普通函数、对象、类等一样编程使用。过程式语言(如C)的程序库主要是各种函数。面向对象语言的程序库统称为类库,实质是一个综合性的面向对象的可重用类型集合, 包括接口、抽象类和具体类。程序库可以是语言系统内置的,也可以是第三发独立开发的。不同语言打包和弓引|用库的形式略有不同。在程序中引用库的关键字有include、using、 import、 with等。除了可以引用相同语言的库外,现在的编程语言也允许弓|入其他语言的库,最常见的是C语言的库。使用第三方开发的程序库与使用系统的程序库,本质上没有区别。通常是理解API设计、查阅API使F方式、学习示范代码及不断练习践。
(二)基于框架的软件复用
框架方法是构件技术、软件体系结构和应用软件开发三者发展结合的产物。框架通常以构件库的形式出现,但构件库只是框架的一个重要部分, 构件库的大规模复用需要框架。框架是部分代码复用,部分是设计复用,有时分析也可复用。框架可以用代码表示,也可以直接执行或复用。
框架的开发从代码、设计和分析三个层面复用了软件:
复用代码。从已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。
复用设计。它提供可复用的抽象算法及高层设计,并能将大系统分解成更小的构件 ,而且能描述构件间的内部接口。
复用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。
(三)基于API的软件复用
典型的例子是实现或者调用某个函数过程:
(1)实现某个函数的时候,函数的参数类型本来并没有见过,但通过智能感知提示我们能够了解到这个新 API 并正确取到参数中我们期望得到的信息。
(2)调用某个函数的时候,我们需要传入本来并没有见过的参数类型,通过智能感知提示,我们能够知道如何构造或获取这些类型然后正确传进去。
(3)调用完某个函数后我们得到了返回值,我们本来并没有见过这个类型,但通过智能感知提示,我们能够学习到这个新的类型,并知道如何正确使用这个返回值。
二. 类,API,框架
(一)设计可复用的类
在OOP中设计可复用的类,封装和信息隐藏,继承和重写,多态性,子类型和重载,泛型编程,行为子类型和Liskov替代原则(LSP),组合与委托。
(二)API
API是应用程序编程接口,库或框架的接口。好的API应具有以下几个性质:
可理解性: 对于一个优秀的API来说,涉及的概念都要在用户的可理解范围之内, 即使有新的概念也应该是渐进式的。一致性: 向下维持兼容。可见性: 最好提供一个入口用来作为用户API的起点。简单的任务应该有简单的方案: 所以API应该是分层的。保护投资: 善待API的用户。 尽量想办法让API漂亮点。如方法名,如结构等。
编写一个API需要考虑以下方面:API应该做一件事,且做得很好。API应该尽可能小,但不能太小。Implementation不应该影响API。记录文档很重要。考虑性能后果。API必须与平台和平共存。类的设计:尽量减少可变性,遵循LSP原则。方法的设计:不要让客户做任何模块可以做的事情,及时报错。
(三)框架
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。
前者是从应用方面而后者是从目的方面给出的定义。为了增加代码的复用性,可以使用委派和继承机制。同时,在使用这两种机制增加代码复用的过程中,我们也相应地在不同的类之间增加了关系(委派或继承关系)。而对于一个项目而言,各个不同类之间的依赖关系就可以看做为一个框架。一个大规模的项目可能由许多不同的框架组合而成。
框架与设计模式:
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;
代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;
应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。
设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
框架分为白盒框架和黑盒框架。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不累

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值