[Delphi]接口认识
2024-08-24 00:53:41
Delphi中的接口用 interface 进行声明。接口是针对行为方法的描述,而不管他实现这种行为方法的是对象还是别的什么东西。因此,接口和类的出发点是不一样的,是在不同的角度看问题。
接口通过GUID进行唯一标识。(Delphi IDE中按Ctrl+Shift+G 产生GUID)
高版本的Delphi已经用IInterface 进行统一接口的定义(不知道从哪个版本开始)。
IInterface = interface
['{00000000-0000-0000-C000-000000000046}']
// 查询类是否实现了某个接口,调用 TObject.GetInterface 方法
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall; //对象引用计数
function _Release: Integer; stdcall; //对象引用减数
end;
IUnknown = IInterface;
_AddRef和_Release方法,要求实现类必须实现,主要的目的是对“对象”进行管理,以便知道接口的释放。
接口使用:
可以使用Supports方法判断,也可以用 as 转换。
软件面向接口编程,这样就会灵活,可扩展。
最新文章
- [转]Json转换神器之Google Gson的使用
- Compute Mean Value of Train and Test Dataset of Caltech-256 dataset in matlab code
- Knockout JS 入门示例
- [转]Linux的tail 与head 命令
- 链表回文串判断&;amp;&;amp;链式A+B
- 泛型,迭代器,LinkedList<;E>;
- Citrix 服务器虚拟化之十八 桌面虚拟化之部署MCS随机桌面池
- ORACLE AWR概述及生成AWR报告
- 关于html中利用jQuery选择子节点方法总结——待续
- 【LeetCode】332. Reconstruct Itinerary
- sqlite ef6
- linux硬盘挂载-新硬盘挂载和扩容硬盘挂载
- MySQL Split 函数
- Codeforce 733B - Parade (枚举)
- git checkout -b 分支name 分支的新建, 切换, 删除, 查看
- Spring Mvc如何通过注解的方式设置视图解析器的优先级
- eclipse启动genymotion插件reg启动visual box 虚拟机
- 做更好的自己 ——读《我是IT小小鸟》有感
- Zabbix高可用
- MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较