Interface 自动释放类和 RTTI 流化可以结合

                            继承自 TInterfacedObject 的对象会根据引用计数自动释放,而 TComponent 则做不到这一点(已经通过程序测试)。但继承自 TInterfacedObject 的对象不会生成运行时信息,从而不能根据 TypInfo 来获取各个属性值,所以当我们需要一个能实现某种接口(自动引用计数释放)又能通过运行期的 RTTI 信息动态访问其 published 属性的时候,就没法找个基类来实现了。但一摸索,可以将 TInterfacedObject 所实现的 IUnknown 的三个方法的实现 Copy到从 TPersistent 的继承类中,做一个 TInterfacedPersistent 基类以同时实现 RTTI 和引用计数(已通过代码测试)。

从代码Copy过来也有作用的现象可知,接口对象在引用计数发生变化时会自动调用实现此接口的 _AddRef 和 _Release 方法,我们做的只是实现这个方法来进行自动控制而已,TInterfacedObject 的关于这俩方法的实现正好完成了引用计数到0就释放,我们照葫芦画瓢也能做到这一点。
                                

查看回复