我有以下界面:
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()接口方法is和as运算符.
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |