有这样的一个实例:
所有的页面,或者说窗口,都是基于URL的,也就是说,POST,GET是其最基本的操作,我试图对其进行封装:
TRootFrm=class(TForm)
private
proceudre SetUrl(const Value:string);virtual;abstract;
procedure SetParameter(const value:string);virtual;abstract;
procedure SetFunctionID(const Value:Integer);virtual;abstract;
function GetUrl:string;virtual;abstract;
function GetParameter:string;virtual;abstract;
function GetFunction:Integer;virtual;abstract;
public
function Get:string;virtual;abstract;
function Post:string;virtual;abstract;
publish
property URL:string read GetUrl write SetUrl;
property Parameter :string read GetParameter write SetParameter;
property FunctionID:Integer read GetFunctionID write SetFunctionID;
end;
这是一个很好想法,比单独使用一个单元来做这个事情,我想这最终比使用 sometype.Get(...)的形式要好。
但好在哪里呢?
如前面所说,封装?继承?代码复用?无疑这些都勿用置疑。
封装例得各实例可以有层次的实现功能,做到代码的简洁。而继承本身也就意味着代码的复用。
当然,上面的封装只是一个纯虚类,并没有实现,我们还要一个派生类来实现这一虎类(接口)。或许我们可以使用项目名称的简写来派生类:
TPPRootFrm=class(TRootFrm)
... //some code
end;