关于泛型算法在delphi中的困惑.100分(100分)

  • 主题发起人 主题发起人 zzzhl
  • 开始时间 开始时间
Z

zzzhl

Unregistered / Unconfirmed
GUEST, unregistred user!
现有如下类结构,
//第一层
//业务逻辑接口
TInterface = class
procedure Method1();virtual;
abstract;
procedure Method2();virtual;
abstract;
procedure Method3();virtual;
abstract;
end;

//第二层
//用文件的实现方式
TFileImplemtation = calss(TInterface)
procedure Method1();override;//实现省略
procedure Method2();override;//实现省略
procedure Method3();virtual;
abstract;//下一层实现
end;
//用数据库的实现方式
TDBImplemtation = calss(TInterface)
procedure Method1();override;//实现省略
procedure Method2();override;//实现省略
procedure Method3();virtual;
abstract;//下一层实现
end;

//第三层
//注意:Method3依赖于二层中的Method1,Method2的实现,但除此外逻辑不变
//用二进制文件实现的方式
TBinFileImplemtation = calss(TFileImplemtation )
procedure Method3();;//实现省略
end;
//用DB2实现的方式
TDb2Implemtation = calss(TDBImplemtation )
procedure Method3();;//实现省略
end;
以上逻辑,用C++的类模版可以很容易实现.但是DEPHLI中怎样实现.请各位多讨论.

 
???这是泛型设计?这可是继承哦。
 
泛型是 具有衍生能力的 编程方式...
 
我理解的范形要靠编译器支持.现在的delphi估计要用插件来更据语法模板生成吧.呵呵不懂.
 
用接口啊,应该可以实现的
如:
type
IWindow = interface
['{00000115-0000-0000-C000-000000000146}']
procedure Draw;
...
end;
TWindow = class(TInterfacedObject, IWindow) // TWindow implements IWindow
procedure Draw;
...
end;
TFrameWindow = class(TWindow, IWindow) // TFrameWindow reimplements IWindow
procedure Draw;
...
end;
 
强人,学习
 
后退
顶部