CSDN博客

img errantry

Inside OLE 2(Chapter 1)

发表于2004/6/24 15:06:00  964人阅读

说明:
大学学英语,后来做软件.入行刚一年,翻译有点烂.

 

 

Chapter 1 An Overview of OLE
所有思想和行为上的进化在最初的时候总是显得违背大众的观点,不被大众所接受.
—George Bernard Shaw (1856–1950)

若干年后,也许有一个叫达尔文的计算机进化论学者会有兴趣考据究竟Microsoft Windows的API(Application Programming Interface)怎么会进化成为一个通过对象提供大部分API的面向对象的操作系统.而OLE技术正是这个转变的产物.它会改变基于Windows的开发方式,并最终改变人们对Windows系统的使用方式.最初的时候, ,无论你有什么样的开发背景,你都会觉得OLE很奇怪并且难以使用.但是,不要感到恐惧.OLE并没有要求你丢掉以前你所掌握的知识.相反,OLE技术是建立在你原有的知识甚至代码之上,并且扩展了他们,使得你的开发上升到一个新的高度.OLE的存在使得组件之间能轻松的集成-不论是应用系统内部的组件还是指简单的独立元素.正是这样的集成能力才能引出变革.

大部分计算机产业业内人士都承认对象以及面向对象技术的价值.对象提供一系列的特性,这些特性描述了它的功能和它所管理的信息.对象技术之所以强大是因为仅仅一个指向对象指针或者引用就能提供出对这个对象功能和内容的访问.离开这种技术,编程通常不得不维护多个变量并把他们传到各个隔离的函数中.尽管这样做也能得到一样的结果,但是却极大的增加了复杂度.通过把这些变量和函数分组为单个单元(就是对象),你就等于创建了一个抽象层.这样就简化了很多编程任务,并且为你提供了其他方面的能力.这种抽象正是可扩展性的关键之处.

OLE对对象的贡献有三个方面:首先,OLE带来了组件(一个或多个对象的包)的可集成性,这种能力是面向对象语言所不能的,比如C++.OLE已经强有力的补足了这些语言;其次,OLE独立于编程语言,通过二进制标准运行.它允许陈旧的积累下来的代码整合为和基于面向对象技术的代码一样的组件.此外,OLE中的对象和其他对象有着一样的特征:封装,多态并且可重用.但是,因为一些微小的差异,OLE经常被指责为异端.大部分的差异是由OLE的语言无关性带来的.显然类似的指责并没有看到OLE的第三个巨大的创新-对象接口的概念和一个对象拥有多个接口的思想.这样,接口的抽象更加简化了编程任务,一些任务在OLE之前还是不可能完成的.

对象之所以强大,是因为他们把功能性和信息分解为有形的单元.OLE更进一步,它把这些功能性和信息分解成关联的组,这些组提供给对象的客户端或者用户一种方式,让他们可以在运行时询问对象所支持的特性.这样的处理方式就使得独立的开发和部署成为可能:不需要在部署时重新编译系统的其他部分;不需要重启系统;不需要去解决兼容问题.OLE.

OLE的核心部分就是一组的通过对象暴露的接口访问的组件服务(Component Services).你可以用挂钩到核心的方式用自己的对象去自定义一些上面所说的组件服务.如果OLE没有提供你想要的服务,你可以使用同样的机制来创建自己的服务.从这个意义上说,OLE是一个可扩展的服务体系架构,在这个架构下,一个自定义或者可扩展的服务可以堂而皇之的成为核心服务的一员,并且立即就是被系统中其他部分所使用.

OLE建立在叫做组件对象模型(Component Object Model)的根基上的.COM具有语言无关性和位置无关性.语言无关性意味着你可以使用任何语言去实现组件,只要编程工具支持OLE接口思想.使用OLE,你可以把已有的代码封装为对象而不需要重写这些代码.位置无关性意思是,这些组件和对象可以为位于同一机器或跨机器的独立的动态链接库(dynamic link library)和可执行文件实现和共享1.

 

注:

1.       在当编写时跨机器的OLE还是不可能的,尽管OLE的架构从设计上是有这种能力的.

0 0

相关博文

我的热门文章

img
取 消
img