gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:53:37 25 4
gpt4 key购买 nike

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

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

最佳答案

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

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com