11.2.2 接口的委托
我用类似的方式定义了一个简单类实现IJumper接口:
TJumperImpl = class(TAggregatedObject, IJumper)
private
FPos: Integer;
public
function Jump: string;
function Walk: string;
procedure SetPos(Value: Integer);
function GetPos: Integer;
end;
这个类的实现与之前的不同之处在于使用了一个特殊的基类TAggregatedObject。这是一个特定目的类,用于定义内部一个内部对象支持接口,我稍后将展示其语法。
TAggregatedObject 类是 System 单元中定义的 IInterface 接口的另一种实现。与 TInterfacedObject 类相比,它在引用计数的实现(基本上是将所有引用计数委托给容器或控制器)和接口查询的实现(如果容器支持多个接口)方面有所不同。
注解 TAggregatedObject 类是 System 单元中定义的 IInterface 的另一种实现。与 TInterfacedObject 相比,它在引用计数实现(基本上将所有引用计数委托给容器或控制器)和接口查询实现(如果容器支持多个接口的情况下)方面存在差异。
我将以一个不同的方式使用这个类。在下面的 TMyJumper 类中,我不想用类似的方法重复 IJumper 接口的实现。相反,我打算将该接口的实现委托给一个已经实现了该接口的类。这不能通过继承来实现(因为我们不能有两个基类);但是你