【发布时间】:2012-07-31 20:38:12
【问题描述】:
我对 Delphi 相当陌生,并且一直在手动进行所有内存管理,但听说过 Delphi 能够使用接口进行引用计数并以这种方式提供一些内存管理的引用。我想开始,但有几个问题。
一般来说,我该如何使用它。创建接口和实现它的类。那么每当我需要该对象时,变量实际上是否为接口类型,但实例化该对象并立即执行?不用考虑释放它吗?没有更多的try-finallys?
为真正不需要的类创建一堆接口似乎很麻烦。关于自动生成这些的任何提示?我如何最好地组织它?接口和类在同一个文件中?
可能导致我悲伤的常见陷阱有哪些?例如:将接口对象转换为其类的对象会破坏我的引用计数吗?还是有任何不明显的方式 Delphi 会创建参考循环? (意思是除了A用B用C用A)
如果有涵盖所有这些的教程,那就太好了,但我在搜索中没有找到任何东西。谢谢。
【问题讨论】:
-
只是 MHO:继续手动管理内存!
-
想详细说明为什么?优点/缺点?
-
你可以从doc wiki开始;该页面有大约十几个不同的链接。如果您使用
[delphi] interfaces搜索 SO,还有一些有用的相关问题(只需在任何页面右上角的搜索栏中输入)。这里的问题应该简短而简洁,所以你可以在阅读一些有更具体问题的文档后回来,这里有人可以帮助你得到答案。 :-) -
关于优点/缺点:只有一个 Pro - 您不必在适当的地方免费拨打电话。缺点 - 许多手动完成时根本不存在的问题。你已经提到了一些,GDF 提到了一些,还有很多。
-
@Uwe:我认为正确的方法没有任何问题。不要把你的对象变成接口,使用使用接口的守卫来保护你的对象。这样,您可以像往常一样使用您的对象,但不必(必须)释放它们。正如我所说,如果做得好,没有缺点。这是一种在其他语言中一直使用的技术。