我们,程序员的世界,正在进行这一场编程方式的革命。这不是一件软件专业的稀奇事因为我们已经身处许多“革命”之中。例如:C语言代替了FORTRAN,C++促进了编程方式向面向对象转移,Java让网络充满活力。但是当下的革命尤为重要因为它重塑了结构化编程的基本方式。更为重要的是,这场革命正影响着广大应用程序领域以及计算领域本身,我们指的就是组件开发革命,从传统的结构化编程领域步入组件软件开发领域。可以说会对组件化编程革命产生持续深远的影响。
在开始我们的COM之旅之前,了解为什么软件组件编程很重要并且它们怎样改变了程序结构是很有意义的。你会明白,组件编程不是另一编程方式,他们是更好的编程方式。
两个目标
组件编程革命看中两个核心要素:
l 管理可扩展的复杂程序
l 可重用代码
下面我们详细讨论各个要素:
程序复杂度
复杂度是一个程序员必须面临的最大挑战。初学者在他们早期的编程生涯中有着较长的编程时间和调试时间。随着程序尺寸增大,他们通常会变得复杂,然而我们人类能管越多,边界效应和非预期相互影响的几率越理的复杂度通常有限。从纯组合的观点来说,代码行大。多数程序员今天知道,程序正变得越来越杂。
组件编程通过允许我们“各个击破”来帮助我们管理复杂度。通过应用组件技术,我们可以把应用程序分离为构件。每个构件都能被作为一个独立单元分别编码维护。通过把自主资源划分成功能单元,程序员就降低了大程序的复杂度。
可重用代码
综上所述,程序员拥有了重用代码的能力。即使开发和调试是一个昂贵的过程,我们仍然高度渴望代码重用。早些时候,代码重用是一个程序到另一个程序的复制粘贴,当然,今天仍在使用。先进一点的从可重用函数库里取,比如像C的函数库。后来很快被标准化的类库所取代,诸如像C++指定的那些。软件组件化把代码重用向前推进了一大步,因为允许使用由独立开发者开发的自封装的二进制模块。不像在编译状态下运行的类或函数库,组件是实时“插入”应用程序的。而且,任何应用程序需要这样一个组件都可以使用它。这样,一旦一个组件被编写,就可以供无数的应用程序使用。
软件组件扩展了代码重用的另一种方式。一个组件可以使用任何支持组件编写的计算机语言编写。使能的组件可以被任何应用程序使用,而不用关心应用程序使用什么语言。这样,一种语言写的代码就可以被另一种语言写的代码使用。这样就允许了应用程序由一些独立模块构成,每个模块都使用最适合的工具构建。