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

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

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
交易(类_苹果小贩.Create);
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
交易(类_葡萄小贩.Create);
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
交易(类_草莓小贩.Create);
end;
end.


夏天来了,西瓜上市了;
在简单工厂模式中,由于只有一个小贩,为了引进西瓜他只好对自己的工厂进行了修改;
在工厂方法模式中,由于每个小贩负责一种水果,只需要再引进一个卖西瓜的小贩就行了,对其他小贩的销售不会造成影响 。

下面先看看在简单工厂模式中是怎么做的:

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

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

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

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

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


2、在工厂类和水果类单元文件中,修改小贩的工厂方法(这里是修改,已经违反了“开闭原则”

//=============================================================================
class function 工厂类_小贩.工厂(水果名:string): 接口_水果;
begin
if(水果名=''''苹果'''')then result:=类_苹果.Create()
else if(水果名=''''葡萄'''')then result:=类_葡萄.Create()
else if(水果名

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