软件复用心得

软件复用心得

软件复用

软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件。软件可复用性的高低影响到生产效率的高低、软件质量的好坏和系统可维护性的好坏。

1、类

面向对象三大特性:封装、继承、多态

继承

继承是指子类可以从父类中直接获得某些特征和行为的能力,继承可作为代码复用和概念复用的手段。作为代码复用的手段是指:子类通过继承父类的行为,一些代码就不必重写;作为概念复用的手段是指:子类共享父类的方法定义。

委托

委托,简单来说就是调用方法,但是相对于直接调用代码,它有以下优点:
①逻辑解耦,保持稳定:我们的委托传入的参数是一个方法,一个方法就是一个逻辑结构,我们通过委托,可以包裹方法逻辑
②可以完成代码复用、保证项目一致性,便于集中管理代码:不同的人有不同的代码编写习惯,我们可以通过委托实现公共部分抽离封装、独自部分分离执行。

多态

多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。

引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数实现的。

2、API

API
  • 可理解性: 对于一个优秀的API来说,涉及的概念都要在用户的可理解范围之内, 即使有新的概念也应该是渐进式的。
  • 一致性: 向下维持兼容
  • 可见性: 最好提供一个入口用来作为用户API的起点。 简单的任务应该有简单的方案: 所以API应该是分层的。 保护投资:
  • 善待API的用户。 尽量想办法让API漂亮点。如方法名,如结构等。
面向接口编程

本质上讲,这个原则倡导的是,当我们写一个函数或一个方法时,我们应该引用相应的接口,而不是具体的实现类。接口提供了非常优秀的抽象归纳,让我们的开发工作变得容易很多。 让API的使用者和API的实现者解耦出来。

模块化

随着软件规模的增大以及功能的复杂性增加。只要代码开始访问其他无关模块的内容,那么架构的退化不可避免。模块化能有效变缓这种退化。

模块化的目的非常简单,就是要实现程序中各个组成部分的松耦合。如果两个模块是独立的,那两个模块就不需要知道对方的存在。如果两个模块要交互,那么他们应该通过具有良好定义的接口来进行交互。

3、框架

框架:封装了某领域内处理流程的控制逻辑,所以我们经常说框架是一个半成品的应用。由于领域的种类是如此众多,所以框架必须具有针对性。框架中也包含了很多元素,但是这些元素之间关系的紧密程度要远远大于类库中元素之间的关系。框架中的所有元素都为了实现一个共同的目标而相互协作。

4、 软件复用的意义

软件复用技术对提高软件产业效率,推进软件产业真正走上工程化、工业化具有如下重至意义。

1)提高生产率

软件复用最明显的好处在于提高生产率,从而减少开发代价。牛产率的提高不仅体现在代码开发阶段。在分析、设计及测试阶段同样可以利用重用来节省开销。

2)减少维护代价

这是软件复用的一个重要优点需要维护的部分也减少了。

3)提高互操作性

一个更为重要的好处在于使用经过检验的构件,减少丁可能的错误,同时软件4个更为重要的好处在于软件复用技术提高了系统问的互操作性。基于复用技术生产的幻件系统。大多使用相同的接口对外实现通信。因此,系统将更为有效地实现与其他系统之间的互操作。

4)支持快速原型

软件复用技术的另一个好处在于对快速原型的支持,即可以快速构造出系统可操作的模型,以获得用户对系统功能的反馈。利用可复用构件可以快速有效地构造出应用程序的原型。

5)减少培训开销

软件复用技术还有利于减少培训开销,即雇员在熟悉任务时所需的非正式的开销程师将使用一个可复用构件库,其中的构件都是他们所熟悉和精通的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值