请教接口与类与类接口与COM的概念??
如何分析下面的类及其用途
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
问题点数:100、回复次数:11Top
1 楼kangyinglai(vision)回复于 2002-09-20 10:07:38 得分 30
从类继承和类与接口的关系上说,那就是TComponent具有上述三个类或者接口的函数和特性。接口不能直接使用,只能通过继承于它的类实例化才能引用!关于COM,我可以告诉你也是接口和类的问题!只不过这些接口都遵循了一些标准定义,比如说IID,ClSID唯一。。。如果想知道细节,我可以告诉你一个方法。在delphi的project菜单下的Import Type Library命令可以打开一个窗口,列表中列出的都是在你的计算机上已经安装的COM对象所在的包文件,你可以使用Create Unit把任何一个倒出成.pas文件,好好地欣赏一下类与接口!:))Top
2 楼zsz0401()回复于 2002-09-20 10:17:14 得分 0
楼上的朋友:
TComponent实现IInterface有什么具体用途,
不实现它不行吗?
如果单为TComponent = class(TPersistent)
有什么问题?
Top
3 楼windofsun(太阳风)回复于 2002-09-20 11:02:13 得分 20
一个类继承了一个接口,就必须实现该接口的所有方法。
你如果看过《设计模式》,就明白为什么要使用接口了。
接口就好像定义了一个规范,所有继承它的类必须符合这个规范。假设你定义一个接口I,类TA和TB实现了I接口,你调用接口I的方法的时候,可以用它的TA实现,也可以调用它的TB实现。这样,同样的代码可以实现不同的功能。Top
4 楼zsz0401()回复于 2002-09-20 11:42:00 得分 0
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
是不是TComponent实现了IInterface与IInterfaceComponentReference所有方法,同时又增加了自己的类公开方法。
如TComponent = class(TPersistent)但其类中的其它不变,是不是功能一样的。
TComponent继承IInterface与IInterfaceComponentReference两个接口只不过是告诉我们它具有这两个接口的方法而已。
大侠们对我上面的个人理解多多指导,帮我改进错误的理解。
Top
5 楼kangyinglai(vision)回复于 2002-09-20 13:31:12 得分 20
不仅仅是具有,而是具体的实现!使用接口是采用了先进的面向组件开发的方法,面向组件开发就是面向接口编程!一个组件定义好接口,你可以很容易地扩展,只要是引用(继承)于该接口,实现方法可以不相同,这对于软件的维护不是很方便吗?Top
6 楼kangyinglai(vision)回复于 2002-09-20 13:32:44 得分 0
当然我是指更改组件中的对象的维护,变化更方便!:))Top
7 楼zsz0401()回复于 2002-09-20 13:36:14 得分 0
谢谢,有点明白了,但还是有点糊涂!Top
8 楼halfdream(哈欠)回复于 2002-09-20 13:57:00 得分 10
IInterface接口是所有VCL COM对象要实现的接口.
在WINDOWS中,它实质就是IUnknown接口..
它包含三个方法..
引用计数(AddRef 和 Release )
查询接口 ,查询同一组件中其它接口.
=====哈欠====halfdream====
Top
9 楼kangyinglai(vision)回复于 2002-09-20 18:22:22 得分 10
只有用得多了,才能对它认识更深刻!我就是这样走过来的!Top
10 楼kangyinglai(vision)回复于 2002-09-20 18:27:16 得分 0
楼主,请你帮个忙!我前几天发了个帖子,一直没有人回复,现在我的问题已经解决了,为了结贴,麻烦你随便回复一句,把分全部赠给你!题目是"如何得到*.wav文件(cti)",当然其他的朋友也可以来,谁先来就给谁!Top
11 楼knock(垃圾土匪)回复于 2002-09-20 19:25:47 得分 10
我现在刚刚看《COM技术内幕》,就知道IUNKNOWN接口有三个方法:
queryinterface,addref,release.。。。。。。。。Top




