网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi学设计模式之工厂方法篇
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
nder: TObject);
begin
 交易(''葡萄'');
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
 交易(''草莓'');
end;
end. 

  这里是工厂方法模式的实现方法,在这种模式中:

  1、每一种水果都对应有一个小贩负责,这样他们做起生意来就轻松多了,呵呵!

  2、顾客直接和小贩打交道,他知道您要什么,这样就不会因为说不清那讨厌的水果名字而吃不上说水果了。

//工厂类和水果类单元文件

unit FactoryMethod;

interface

type
 接口_水果 = interface(IInterface)
  function 提示():string;
  function 被评价():string;
 end;

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

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

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

 接口_小贩 = interface(IInterface)
  function 工厂(): 接口_水果;
 end;

 类_苹果小贩 = class(TInterfacedObject, 接口_小贩)
  function 工厂(): 接口_水果;
 end;

 类_葡萄小贩 = class(TInterfacedObject, 接口_小贩)
  function 工厂(): 接口_水果;
 end;

 类_草莓小贩 = class(TInterfacedObject, 接口_小贩)
  function 工厂(): 接口_水果;
 end;

implementation

{****** 类_苹果 ******}

 function 类_苹果.提示():string;
 begin
  result:=''削了皮再吃!'';
 end;

 function 类_苹果.被评价():string;
 begin
  result:=''恩,还不错,挺甜!'';
 end;

{****** 类_葡萄 ******}

 function 类_葡萄.提示():string;
 begin
  result:=''别把核咽下去了!'';
 end;

 function 类_葡萄.被评价():string;
 begin
  result:=''没有核呀???'';
 end;

{****** 类_草莓 ******}

 function 类_草莓.提示():string;
 begin
  result:=''别怪我没告诉你,很酸!'';
 end;

 function 类_草莓.被评价():string;
 begin
  result:=''试试?哇,牙快酸掉了!'';
 end;

{***** 类_苹果小贩 *****}

 function 类_苹果小贩.工厂(): 接口_水果;
 begin
  result:=类_苹果.Create()
 end;

{***** 类_葡萄小贩 *****}

 function 类_葡萄小贩.工厂(): 接口_水果;
 begin
  result:=类_葡萄.Create()
 end;

{***** 类_草莓小贩 *****}

 function 类_草莓小贩.工厂(): 接口_水果;
 begin
  result:=类_草莓.Create()
 end;
end.

//窗体单元文件

unit MainForm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,FactoryMethod;

type
 TForm1 = class(TForm)
 RadioButton1: TRadioButton;
 RadioButton2: TRadioButton;
 RadioButton3: TRadioButton;
 procedure RadioButton3Click(Sender: TObject);
 procedure RadioButton2Click(Sender: TObject);
 procedure RadioButton1Click(Sender: TObject);
 private
  procedure 交易(小贩:接口_小贩);
 end;

 var
  Form1: TForm1;

 implementation

 {$R *.dfm}

 procedure TForm1.交易(小贩:接口_小贩);
 var
  我买的水果:接口_水果;
 begin
  我买的水果:=小贩.工厂();
  ShowMessage(我买的水果.提示);
  ShowMessage(我买的水果.被评价);
 end;

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

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

 procedure TForm1.RadioButton3Click(Sender: TObject);
 begin
 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号