类继承复用之适配器模式
以类的适配器模式为例:
type
ITarget=interface//目标
procedure Hello;
Procedure Hello2;
end;
TAdaptee=class(TInterfacedObject)//被适配者一
public
procedure Say;
end;
TAdaptee2=class(TInterfacedObject)//被适配者二
public
procedure Tell;
end;
TAdapter=class(TAdaptee,ITarget)//适配器(多重继承)
public
procedure Hello;
procedure Hello2;
end;
implementation
procedure TAdaptee.Say;
begin
//do something
end;
procedure TAdaptee.Tell;
begin
//do something
end;
procedure TAdapter.Hello;
begin
Say;//转换接口
end;
procedure TAdapter.Hello2;
begin
Tell;//转换接口
end;
这样,TAdapter类就能复用TAdaptee的Say方法和TAdaptee2的Tell方法,并将这两个接口分别转换成Hello和Hello2,达到将第三方API接口转
换成与自己现有的接口兼容的目的。其核心是多重继承。
type
ITarget=interface//目标
procedure Hello;
Procedure Hello2;
end;
TAdaptee=class(TInterfacedObject)//被适配者一
public
procedure Say;
end;
TAdaptee2=class(TInterfacedObject)//被适配者二
public
procedure Tell;
end;
TAdapter=class(TAdaptee,ITarget)//适配器(多重继承)
public
procedure Hello;
procedure Hello2;
end;
implementation
procedure TAdaptee.Say;
begin
//do something
end;
procedure TAdaptee.Tell;
begin
//do something
end;
procedure TAdapter.Hello;
begin
Say;//转换接口
end;
procedure TAdapter.Hello2;
begin
Tell;//转换接口
end;
这样,TAdapter类就能复用TAdaptee的Say方法和TAdaptee2的Tell方法,并将这两个接口分别转换成Hello和Hello2,达到将第三方API接口转
换成与自己现有的接口兼容的目的。其核心是多重继承。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/archive/2008/03/14/2941057.html