delphi 接口
delphi 接口——————
1. 什么时候用?
2. 具体如何用?
谢谢大家!!!
[解决办法]
需要用的时候就用。但是不用它一样能写程序,只不过用Interface的时候会强制让编程的人进行严格的模块间松耦合编程,不过,模块划分不好,用Interface还是一样糟。
再用Interface的第二种情况,就是用Windows COM,都是用COM接口提供的,你不用也不行。
总而言之,接口是个很强有力的工具,只不过,出于某些原因,国人用得很少
[解决办法]
"接口" 的概念和 "类" 特别是 "抽象类" 近似, Delphi 之初并没有接口, 后来(Delphi 3)为了支持 COM 引入了接口, 再后来发展成为 Delphi 重要的语言特性.
微软在开发 OLE 时, 有一种需求: 使用其他程序中的对象, 这种需求导致了 COM 的诞生并发扬光大, 而 OLE 却在慢慢地销声匿迹.
从 COM 到 COM+, 之后好像微软并没有再大力发展(可能是把精力都放到 Net 上去了, 但 Net 也没离开 COM), 它现在仍有着非常广泛的应用, 这应该得益于它先进的思想.
慢慢道来:
1、一个二进制的 1 或 0, 这是任何语言都可以识别的;
2、一个字符, 也是任何语言都可以识别的;
3、一个整形变量, 也是任何语言都可以识别的;
4、一个结构体, 也是任何语言都可以识别的;
5、一个函数也没有问题, 譬如 Delphi 调用 API;
6、但一个 "对象" 或着 "类" 呢? 这在跨程序、跨语言时就不好识别了.
COM 解决了这个问题! 并进而应用于网络.
COM 规定了一个二进制的标准, 这个标准主要针对 "对象方法的声明"(也就是接口), 同时把声明(接口)和实现分开.
不同的语言都可以来实现这个接口、同时不同的语言(在遵循标准的情况下)也都能识别这个接口, 从而实现的跨语言的对象的交互.
现在看看这个过程其实是水到渠成、挺自然的; 但好像当初微软的 COM 之路也并不平坦.
微软通过 COM 组件的方式提供了很多功能, 它们很可能是用 C++ 实现的, 我们用 Delphi 可以很好的使用, 本质上说就是 Delphi 遵循了那个二进制的标准; 相反, Delphi 按这个标准声明、并用自己的语言实现的 COM 组件也能供其他语言使用.
一个 COM 组件里有什么呢?
主要是一堆接口(也就是声明)和接口的实现, 每个接口对应一个计数器, 另包含一个叫 "类厂" 的东西.
使用 COM 步骤可能是这样的:
1、程序在使用组件之初, 先联系 "接口"; 这应该是从注册表中查询.
2、找到后, 如果此接口还没有被实现, 马上调用 "类厂" 建立起对象, 并同时给接口计数器加 1.
3、可能会不止一个程序在使用同一个接口, 但每有使用则 "计数器+1", 每次用完则 "计数器-1".
4、当接口的使用计数为 0 时, 系统自动释放类厂为该接口建立的对象(垃圾回收机制).
我们 Delphi 中的接口当然也是这样, 用完会自动释放, 无需手动 free.
如果用过webservice,就知道提供的都是一些接口,后台的东西,你根本不用知道,也不知道,你知道这个接口其什么作用就好了,调用其中的方法就行
[解决办法]
不知你说的接口是什么概念?
是两套程序或两种语言间的数据对接?这个要开发。
[解决办法]