软件复用性——精选推荐

软件复⽤性
软件复⽤介绍
软件复⽤,即使⽤已存在的软件部件(softwaare components)来实现或者更新软件系统。软件复⽤有两种视⾓:⼀是创造,⼆是使⽤。创造即⾯向复⽤编程,开发可复⽤的软件。使⽤即基于复⽤编程,利⽤已有的可复⽤软件搭建应⽤系统。
复⽤是现代软件编写中最重要的概念之⼀。它具有很多优点,如:适应性,⾼可靠性,能够降低成本和开发时间等优点。
复⽤的花销
1. 可复⽤的组件应该使⽤清晰的定义、开放的⽅式、简洁的接⼝以及简洁明了的⽂档。在设计时,也要为未来的更新留⾜余地。
2. 复⽤的代价是很⾼的,它包括了有组织性的、有技巧的设计,复⽤中出现的多种变化,以及⽀撑这些变化的⼯具的开销与让⼈们适应解子征
新⼯具与新变化的开销。
同时,可复⽤的软件⼀般也具有⼀定缺陷,它的性能会稍稍差⼀些,针对更加普适的场景,缺少⾜够的针对性。
如何定义软件的可复⽤性
可复⽤性通常涉及到软件的构建、打包、分发、安装、设置、应⽤、维护以及更新等问题。
⼀个具有⾼可复⽤性的软件应该⼩⽽精、与现⾏的多种标准相兼容、灵活可变、具有优良的可扩展性、使⽤泛型参数、具有模块化、在变化中维护较好的局部性、具有良好的稳定性,并且能提供丰富的⽂档以及帮助。
复⽤的层次
软件复⽤具有多种层次,分别是:
一周立波秀2011集全集高清代码层⾯:包括实现的⽅法,对变量的定义等
模块层⾯:最基本的就是类与接⼝
运⾏库层⾯:各种API的设计与实现
架构层⾯:使⽤各种框架,例如:springboot等现⾏的流⾏框架
在这其中最主要的复⽤是在代码层⾯,它与程序员息息相关,这是最底层的复⽤。
7大叔论坛
代码复⽤
1. ⽩盒复⽤:源代码可见,可修改与扩展。它的可定制化程度⾼,需要对代码进⾏更加深⼊的了解,对它的修改会增加软件的复杂度。
2. ⿊盒复⽤:源代码不可见,并且不能修改。我们可以调⽤API接⼝来使⽤内部的⿊盒代码,但是⽆法修改。
使⽤代码复⽤,在⼤多数情况下,我们都需要对源代码进⾏修改,以满⾜新的应⽤需求。
模块复⽤
模块复⽤与类和接⼝有关,⼀个类是模块复⽤的基本单元,我们可以不必知道其中的代码,只需使⽤jar包导⼊该类,只需将其添加到classpath中,我们可以使⽤javap⼯具来得到⼀个类的公共⽅法的headers。这些模块经过了封装,所以⽤户在使⽤时需要查阅类设计者提供的相关⽂档。
复⽤类的⽅法:继承(inheritance)
Java提供了⼀种名为继承的代码重⽤⽅式,⼀个类使⽤extends关键字,能够继承⼀个⽗类的属性与⾏为,但⼦类能够重写⽗类中的⽅法。复⽤类的⽅法:委托(delegation)
委托就是⼀个对象对另⼀个对象所提供的功能有着依赖关系,例如Sorter分类器委托了⼀些功能给了Comparator⽐较器,即分类器的实现与使⽤需要依赖于⽐较器。
设计良好的委托可以实现复⽤
因此,分类器(Sorter)可以被不同的分类顺序所复⽤,⽐较器(Comparator)可以被需要⽐较数字的代码所复⽤。
复⽤也有两种分类,分别是明确委托与隐性委托。明确委托是直接在代码层⾯上传递相应的对象,⽽隐性委托则不直接写出来,它与Java中的语法密切相关。
接⼝
接⼝(英⽂:Interface),在JAVA编程语⾔中是⼀个抽象类型,是抽象⽅法的集合,接⼝通常以interface来声明。⼀个类通过继承接⼝的⽅式,从⽽来继承接⼝的抽象⽅法。
接⼝并不是类,编写接⼝的⽅式和类很相似,但是它们属于不同的概念。类描述对象的属性和⽅法。接⼝则包含类要实现的⽅法。
除⾮实现接⼝的类是抽象类,否则该类要定义接⼝中的所有⽅法。
接⼝⽆法被实例化,但是可以被实现。⼀个实现接⼝的类,必须实现接⼝内所描述的所有⽅法,否则就必须声明为抽象类。另外,在 Java 中,接⼝类型可⽤来声明⼀个变量,他们可以成为⼀个空指针,或是被绑定在⼀个以此接⼝实现的对象。
运⾏库复⽤
运⾏库(library)即提供了可复⽤功能的类与⽅法的集合。许多API提供了这些类与⽅法,能让我们更好地实现⾃⼰想要的功能。典型的有Java API
设计精良的API的特点
容易学。具有丰富的⽂档,让⽤户第⼀次使⽤的时候不⾄于⼀头雾⽔。
容易使⽤,使⽤⽅法符合直觉,符合普遍的编程习惯,让⽤户很难⽤错(misuse)。
使⽤该API写出的代码可读性强,并且易于维护。韩素音
API封装得精良,⽤户不需要知道底层实现细节便能轻松使⽤该API。
⾜够满⾜⼤部分的设计需求。
便于更新,且对API的更新不影响已存在的使⽤该API的代码。农药电子手册
框架层⾯
应⽤框架,即软件的⾻架,软件的其他部件都依托于该⾻架,它包括了类与类之间的关系,接⼝之间的依赖关系等等。使⽤了框架,我们仅需向该框架中写⼊⾃⼰的特定代码,⼤⼤降低了写代码的时间。
框架分为⿊盒框架与⽩盒框架。⿊盒框架需要通过实现特定接⼝或者使⽤委托(delegation)进⾏框架的扩展,⽩盒框架则需要我们深⼊代码底层进⾏修改以实现框架的扩展。
Java中的常见框架有:Spring、Springboot。Spring框架是由于软件开发的复杂性⽽创建的。Spring使⽤的是基本的JavaBean来完成以前只可能由EJB完成的事情。然⽽,Spring的⽤途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性⾓度⽽⾔,绝⼤部分Java应⽤都可以从Spring中受益。Spring Boot是由Pivotal团队提供的全新框架,其设计⽬的是⽤来简化新Spring应⽤的初始搭建以及开发过程。该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。通过这种⽅式,Spring Boot致⼒于在蓬勃发展的快速应⽤开发领域(rapid application development)成为领导者。
>外围电路

本文发布于:2024-09-22 17:39:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/649405.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   框架   实现   代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议