当你不提供guid时,引用计数是否仍适用于Delphi接口?

Big*_*ion 5 delphi

我有以下界面:

type IDataAccessObject<Pk; T:class> = interface
   getByPrimaryKey(key: PK) : T;
   //... more methods
end;
Run Code Online (Sandbox Code Playgroud)

并且接口的实现如下:

type TMyClassDAO = class(TInterfacedObject, IDataAccessObject<integer, TMyClass>)
   getByPrimaryKey(key:integer) : TMyClass;
   // more methods
end;
Run Code Online (Sandbox Code Playgroud)

请注意,我没有guid接口提供(因为先前通用接口的每个实例都是不同的接口,并且它们不应共享相同的接口guid).但是我不确定这是否会破坏实现的引用计数TInterfacedObject

Dal*_*kar 15

引用计数不依赖于a GUID,而是依赖于on _AddRef()_Release()方法实现.

从继承之后TInterfacedObject,引用计数将适用于所有对象实例.

如果不提供GUID,唯一丢失的是能够从另一个接口查询一个接口,例如调用Supports()函数,QueryInterface()接口方法isas运算符.