手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

用 Delphi 学设计模式(二) 之 工厂方法篇 (原创)

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
=''''草莓'''')then result:=类_草莓.Create()
//请注意,下面这条语句是新加上去的,工厂被修改了!!!!
else if(水果名=''''西瓜'''')then result:=类_西瓜.Create();
end;
//=============================================================================

3、在窗体单元文件中,添加一个新的事件处理过程(这里是扩展,不会影响到已有的代码

//=============================================================================
RadioButton4: TRadioButton;
procedure RadioButton4Click(Sender: TObject);

procedure TForm1.RadioButton4Click(Sender: TObject);
begin
交易(''''西瓜'''');
end;
//=============================================================================



下面再看看在工厂方法模式中是怎么做的:


1、这一步和在简单工厂模式中做的一样,在工厂类和水果类单元文件中,引入一个新的西瓜类(这里是扩展,不会影响到已有的代码

//=============================================================================
类_西瓜 = class(TInterfacedObject, 接口_水果)
function 提示():string;
function 被评价():string;
end;

{****** 类_西瓜 ******}

function 类_西瓜.提示():string;
begin
result:=''''刚上市的沙瓤大西瓜,2元钱一斤!'''';
end;

function 类_西瓜.被评价():string;
begin
result:=''''靠,被骗了,根本没熟!'''';
end;
//=============================================================================


2、区别就在这里了,在工厂类和水果类单元文件中,引入一个新的西瓜小贩类(这里是扩展,不会影响到已有的代码)
//=============================================================================
类_西瓜小贩 = class(TInterfacedObject, 接口_小贩)
function 工厂(): 接口_水果;
end;

{***** 类_西瓜小贩 *****}

function 类_西瓜小贩.工厂():

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!