代码之家  ›  专栏  ›  技术社区  ›  Pierre-Jean Coudert

Delphi内存管理设计策略:对象还是接口?

  •  7
  • Pierre-Jean Coudert  · 技术社区  · 15 年前

    关于Delphi内存管理,您的设计策略是什么?

    • 您喜欢手动创建和释放对象的用例是什么?

    你有没有发现一些陷阱或困难与参考计数的对象?

    2 回复  |  直到 15 年前
        1
  •  7
  •   mghie    15 年前

    每当您在线程之间共享对象时,最好使用接口。共享对象不一定有一个可识别的所有者,因此让放弃对接口的最后一个引用的线程释放实现对象是一种自然的选择。看到了吗 OmniThreadLibrary 这是一个很好的例子,说明如何利用接口进行设计,以及如何克服多线程代码中一些复杂的所有权问题。

        2
  •  1
  •   Marcelo Cantos    15 年前

    你应该总是喜欢接口,除非它不可能由于VCL的限制。我怀疑,如果Delphi1.0中提供了接口,VCL的结果会非常不同。

    一个次要的考虑是要注意参考周期。如果A与B有一个接口,B与A有一个接口,它们都将永远存在。