写代码的随想(3)

来源:互联网 发布:哈谢克 知乎 编辑:程序博客网 时间:2024/06/13 01:01
 

有这样的一个实例:

所有的页面,或者说窗口,都是基于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;