谈组件技术(一) 必备知识.

2008-04-09 04:26:59来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

谈组件技术(一)

------必备知识

何谓组件技术?组件技术有什么作用?为什么要应用组件技术?如何应用组件技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当这些问题缠绕在心头时,也许您自己也承认,不得不学一学组件技术了,其码要了解组件技术(组件技术本文以后将以组件代替)。那么现在问一问自己,你是如何看待组件的?你心目中的组件是一个什么样子呢?感觉很好说,也许每个编程的人员对组件都有一个轮廓的概念,是的,Windows平台已经用了快十多年了,怎么能没有听过组件?从大的方面而言,当MS应用了OLE的时候,组件已经在慢慢的发展着,从最初的OLE 到COM 到CMO 甚至到了现在的.Net,无处不见组件的存在,然而这仅仅是一个轮廓的影响,我想,在学习组件的时候,首先应该明白一些基本的概念。而写这篇文章的最终目的就是要回答开篇是提出的几个问题以及教您如何写组件(本文将以编写一个ocx组件、应用MTS组件、COM 组件结束,而对于COM 就是MTS的更新版本所存在的某些歧义也将给于解释)。

何谓组件技术?具体死板的概念在各种书籍上有很多的定义,组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节,甚至于将安全机制和事物机制体现的淋漓尽止。而这个封装体就常常的被我们称作组件。或许这个定义有些勉强,但这样的解释对现在的你是有帮助的,而这个封装的过程中,编程工具仅仅是充当了一个单纯的工具罢了,没有什么实际的意义,也就是说为了完成某一规则的封装,可以用任何支持组件编写的工具来完成,而最终完成的组件是与语言本身已经没有了任何的关系,甚至可以实现跨平台。对我们而言,它就是实现了某些功能的、有输入输出接口的黑匣子罢了。

组件有什么作用?这个问题似乎有些笼统,试着想一想windwos何以实现如此强大的生产力?而在它的背后到底有什么在服务着?一句话:组件就是windows的灵魂,脱离了组件,windows系统将不再如今天一样如日冲天,windows如此,Unix也同样是如此,作为一个操作系统,它所完成的功能无不提体着组件的服务,一个很轻松的Copy – Paster都要靠DDE来支持,而DDE就是一种组件服务对象,而具体到某一个细节,如今的大型ERP靠的是什么?多层系统又靠的是什么?组件!组件封装了系统运行的各种规则甚至运行环境,而组件又何以完成如此多的服务?这儿就不得不提起组件对象,所谓的组件对象是组件的一个集合,而这个集合又并非是随意性的组合,必须要考虑到组件对象中的各个组件的协调功能,虽然,在理论上讲,一个组件对象里的各个组件应该是互不干涉、互不影响的,但是这并不意味着组件对象就是一个无协调的组件的集合,我们必须理解,通过访问一个组件对象中的某个组件,就有可能访问此组件对象中的另外的组件以此循环下去.而这些都由谁来管理?肯定是组件对象,可以这样理解:组件有其自身的规则实现,而规则的实现又提体到了接口的实现,但是组件对象本身也是一个组件,它也有业务逻辑规则需要处理,它也要起到所集合的组件的协调。如此一来,可以能过某一个组件对象来协调的实现一些、一部分的业务逻辑规则!而对于应用者来说,这一切完全没有必要去得知,甚至是没有意义的。

为什么要应用组件技术?或许你会说,我们通过编程的手段同样可以处理一些简单的或稍微复杂的业务规则,的确,不否认,通过编程的手段我们可以实现如组件对象一般实现的规则处理。然而如果仅仅是因为此我们就说组件对象或组件和我们平时的编码是一致的,那么现在可以明确的告诉你,这是一个很糟糕的想法。使用组件技术的的目的是实现各种规则{你想要实现的规则}的实现,而且组件对象还将从更广阔的方面来考虑,它能将一个大型的分布式系统进行统一的规划、合理的处理冗余、安全、平衡负载……等单纯的编程手段不能实现的功能,这就是我们要应用组件的一个很重要的原因。再者,组件对象不是普通的可执行文件,更不是将各种规则定死在其内部,它可以很平滑的实现自身的升级、扩展(前提:不大量的更动接口),举一个很简单的例子,当我们发现某项业务逻辑规则已经很陈旧的时候,我们不得不用新的业务逻辑规则去替换它,而这个替换过程将会提现出组件对于普通的.Dll文件或是.Exe可执行文件的具大差别。当我们需要进行更新的时候,对于组件对象而言,在最理想的情况下用户可以一边进行组件对象的应用,一边无知觉的接受新的组件技术,而试问一个Dll文件或是某一个可执行文件可以达到这样的效果吗?答案是否定的。如果你说这些理由还不够的话,我可以举出很多的应用来说明组件应用的必要性,然而,理由实在太多,也没有必要一一列举,你可以参考其它的技术资料或是在平时的操作中去发现。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi中根据分类数据生成树形结构的最优方法

下一篇:在Delphi 中用程序实现自定义窗体的创建和显示顺序(2)