我将来自多个对象的小接口存储到单个TInterfaceList“存储”中,旨在为最终用户提供特定接口类型的列表,因此每个接口都将公开一个“GetName”函数,但所有其他方法都是唯一的。例如,这里有两个接口:
IBase = interface
//----------------------------------------
function GetName : string;
//----------------------------------------
end;
IMeasureTemperature = interface(IBase)
//------------------------------------
function MeasureTemperature : double;
//----------------------------------------
end;
IMeasureHumidity = interface(IBase)
//----------------------------------------
function MeasureHumidity: double;
//----------------------------------------
end;
我将这些接口放入一个TInterfaceList中,然后我想扫描列表以查找特定的接口类型(例如“IMeasureTemperature”),并构建指向导出这些接口的对象的另一个指针列表。我希望不对这些对象的位置做任何假设,有些对象可能会导出多种类型的接口。我知道我可以使用类层次结构来完成此操作,例如:
If FList[I] is TMeasureTemperature then ..
但我希望使用接口类型实现类似的功能,这种方式可行吗?
TInterfaceList
中...所以我可能是错的... - Oliver Giesen