模块化编程的优点与实现原理概述计算机等级考试

文章作者 100test 发表时间 2010:01:27 13:30:31
来源 100Test.Com百考试题网


  本文是《Rich Client Programming: Plugging into the NetBeans Platform》(中文版译名为《NetBeans富客户端编程权威教程》,Sun中国技术社区推荐的NetBeans学习用书)英文版公开章节,即第二章的节选译文,章节名称为“模块化编程的好处”。通过阅读这一章节,读者们将对模块化编程的起源和实现原理产生初步的了解,并了解到模块化编程的优点。有关模块化编程的实现部分,本文着重介绍了NetBeans的情况。

  分布式开发

  闭门造车的软件开发时代早已过去。在嵌入式系统之外,几乎每一位开发者都需要依赖别人写的类库或框架。这种借助并复用他人提供的基础设施、框架以及类库的好处在于使自己能够专注于应用本身的逻辑当中。这样缩短了软件开发所需要的时间。

  过去的几十年间,开源软件的兴起令类库的复用具有双倍的吸引力。我们现在有针对多种程序中的各种问题而诞生的现成解决方案,而获取这些解决方案不用花一文钱。开源产品起于UNIX内核,基础C类库和命令行工具,并通过Web服务器和Web浏览器延伸至Ant,Tomcat,JUnit,Javacc等Java工具领域——而这种情况还有无限制发展的趋势。在编写一个现代软件的过程中,集成工作的部分和创新的部分大致是对半分的。将可用的碎片捡起来并组合到一起是现代应用开发的主要工序。人们不再从零开始编写一切。人们在需要HTTP服务器的时候为他们的应用选择Apache或者Tomcat,在需要数据库的时候选择MySQL或PostgreSQL。应用软件将这些零碎部件粘连起来,并加入自己的逻辑。最终的成品是功能完备的、性能好的、并且在相当短的时间内开发出来的应用软件。

  看看Linux版本是如何发行的。红帽的Fedora,Mandriva,SUSE,还有Debian,它们所包含的应用程序其实大致上差不多,而且都是同一群人写的。发布者不过是简单的将它们打包,并提供“胶水”用于统一的安装。发行商往往只编写中央管理软件和安装软件,并提供一些质量保证,以确保所有选定的组件能够协同工作。这个过程对于Linux的普及产生了相当理想的效果。有一个例子可以证明此模型的意义,那就是Mac OS X:它其实就是个安装了一堆苹果插件的FreeBSD Unix。对于这样的软件,需要注意的一个重点就是它创建的方式采用了一种分布式开发模型。软件的开发者和发行者可能完全不认识对方,也没有交流过,而他们往往也并不生活在同一个地域。

  这种分布式开发有如下特征。第一,应用程序(或操作系统)的源代码不再处于某一个开发者完全的掌控之中。源代码被散布至世界各地。毫无疑问,构建这样的软件与传统那种源代码完全在你家中的代码库的应用构建是完全不同的。

  另外我们需要了解的是,也没有一个人对整个项目的时间表有完全的掌控。不单单是源代码,开发者们也遍布世界各地,并以他们自己的时间表工作。这种情况并不像听起来的那样不寻常或不靠谱。如果你曾经为超过五十人的项目制定过时间表,那么你一定会明白,对整个项目进程拥有“完全的掌控”最多只是一个安慰自己的幻想。你随时需要准备好抛弃某个特性,或是发布这个或那个组件的一个老版本。同样的模式也适用于分布式开发。

  每个人都有这样一个权利:使用一个新版本或旧版本类库的自由。

  使用外部库并使用它们组建应用程序,这意味着人们能够花费更少的时间和精力创造更复杂的软件。代价则是,我们需要管理这些类库,确保它们的兼容性。这不是一个简单的任务。但是,对于如今高度复杂系统的组建,也没有其他既实用、性价比又高的开发模式了。

  模块化应用程序

  针对分布式开发的挑战,其技术解决方案就是模块化。在一大块紧密耦合的代码中,每个单元都可能与其他单元进行直接的接口。而模块化应用则正相反,它由小块的、分散的代码块组成,每一块都是独立的。于是,这些代码块可以由不同的团队进行开发,而他们都有各自的生命周期和时间表。最终的成果则可以由另一个独立的个体,即发行者,进行集成。

  对于Java而言,将一组类库放在Java类路径上并运行一个应用程序在很早以前就实现了。NetBeans平台在类库的管理方面已经走的相当远:它积极的参与类库的加载过程,并强制每一个类库都满足其他类库对自己的最低版本需求。这样的类库被称为模块。NetBeans模块系统是一个运行时容器,它确保了系统在运行时的完整性。


相关文章


C语言实例怎样存钱利最大计算机等级考试
JAVA中Session的会话状态计算机等级考试
如何实现在不同screen的切换计算机等级考试
Java落在Oracle控制下前途难料计算机等级考试
模块化编程的优点与实现原理概述计算机等级考试
EJB3.1五大模式改进令JavaEE6更好用计算机等级考试
DWRUtil的方法使用说明计算机等级考试
我的第一个JavaMidlet计算机等级考试
C语言实例:高次方数的尾数计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛