oop - 如何跟踪对象的引用?

标签 oop delphi

在手动内存分配和指针仍然占主导地位的世界中(Borland Delphi),我需要一个通用的解决方案来解决我认为的普遍问题:

在给定时刻,可以从多个位置(列表、其他对象……)引用一个对象。有没有一种好方法来跟踪所有这些引用,以便我可以在对象被销毁时更新它们?

最佳答案

如果您想通知其他人更改,您应该实现"Observer Pattern" 。 Delphi 已经为 TComponent 后代完成了这项工作。您可以调用 TComponent.FreeNotification 方法,并在其他组件被销毁时通知您的对象。它通过调用Notification 方法来实现这一点。您可以通过调用 TComponent.RemoveFreeNotification 将自己从通知列表中删除。另请参阅this page .

大多数垃圾收集器不允许您获取引用列表,因此在这种情况下它们没有帮助。如果您使用接口(interface),Delphi 可以进行引用计数,但是您需要自己跟踪引用。

关于oop - 如何跟踪对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119/

相关文章:

php - 在转向框架之前,您需要具备良好的 OOP 背景吗?

Delphi包问题: Packaged units must refer only to packaged units.。 (E2411)

delphi - 在 TListView 中绘制复选框

sql - 如何从 ADO 查询中获取记录数?

java - 在创建扩展父 fragment 的子 fragment 时调用 newInstance()

c++ - C++中纯虚方法的重新定义

php - 多重继承支持

PHP 提取不适用于数组

Delphi INI 读取字符串限制

delphi - 检查列表框中是否已选择某个项目