码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂[转]

时间:2014-11-05 16:25:00      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   os   sp   div   on   

    简单工厂:工厂依据传进的参数创建相应的产品。

bubuko.com,布布扣
  1bubuko.com,布布扣
  2bubuko.com,布布扣{《HeadFirst设计模式》工厂模式之简单工厂 }
  3bubuko.com,布布扣{ 产品类                              }
  4bubuko.com,布布扣{ 编译工具 :Delphi7.0                 }
  5bubuko.com,布布扣{ 联系方式 :guzh-0417@163.com         }
  6bubuko.com,布布扣
  7bubuko.com,布布扣unit uProducts;
  8bubuko.com,布布扣
  9bubuko.com,布布扣interface
 10bubuko.com,布布扣
 11bubuko.com,布布扣type
 12bubuko.com,布布扣  TPizza = class(TObject)
 13bubuko.com,布布扣  public
 14bubuko.com,布布扣    procedure Prepare; virtual; abstract;
 15bubuko.com,布布扣    procedure Bake; virtual; abstract;
 16bubuko.com,布布扣    procedure Cut; virtual; abstract;
 17bubuko.com,布布扣    procedure Box; virtual; abstract;
 18bubuko.com,布布扣  end;
 19bubuko.com,布布扣
 20bubuko.com,布布扣  TCheesePizza = class(TPizza)
 21bubuko.com,布布扣  public
 22bubuko.com,布布扣    procedure Prepare; override;
 23bubuko.com,布布扣    procedure Bake; override;
 24bubuko.com,布布扣    procedure Cut; override;
 25bubuko.com,布布扣    procedure Box; override;
 26bubuko.com,布布扣  end;
 27bubuko.com,布布扣
 28bubuko.com,布布扣  TVeggiePizza = class(TPizza)
 29bubuko.com,布布扣  public
 30bubuko.com,布布扣    procedure Prepare; override;
 31bubuko.com,布布扣    procedure Bake; override;
 32bubuko.com,布布扣    procedure Cut; override;
 33bubuko.com,布布扣    procedure Box; override;
 34bubuko.com,布布扣  end;
 35bubuko.com,布布扣
 36bubuko.com,布布扣  TClamPizza = class(TPizza)
 37bubuko.com,布布扣  public
 38bubuko.com,布布扣    procedure Prepare; override;
 39bubuko.com,布布扣    procedure Bake; override;
 40bubuko.com,布布扣    procedure Cut; override;
 41bubuko.com,布布扣    procedure Box; override;
 42bubuko.com,布布扣  end;
 43bubuko.com,布布扣
 44bubuko.com,布布扣  TPepperoniPizza = class(TPizza)
 45bubuko.com,布布扣  public
 46bubuko.com,布布扣    procedure Prepare; override;
 47bubuko.com,布布扣    procedure Bake; override;
 48bubuko.com,布布扣    procedure Cut; override;
 49bubuko.com,布布扣    procedure Box; override;
 50bubuko.com,布布扣  end;
 51bubuko.com,布布扣
 52bubuko.com,布布扣implementation
 53bubuko.com,布布扣
 54bubuko.com,布布扣{ TCheesePizza }
 55bubuko.com,布布扣
 56bubuko.com,布布扣procedure TCheesePizza.Bake;
 57bubuko.com,布布扣begin
 58bubuko.com,布布扣  Writeln(‘烘烤奶油比萨‘);
 59bubuko.com,布布扣end;
 60bubuko.com,布布扣
 61bubuko.com,布布扣procedure TCheesePizza.Box;
 62bubuko.com,布布扣begin
 63bubuko.com,布布扣  Writeln(‘将奶油比萨装盒‘);
 64bubuko.com,布布扣end;
 65bubuko.com,布布扣
 66bubuko.com,布布扣procedure TCheesePizza.Cut;
 67bubuko.com,布布扣begin
 68bubuko.com,布布扣  Writeln(‘将奶油比萨切成片‘);
 69bubuko.com,布布扣end;
 70bubuko.com,布布扣
 71bubuko.com,布布扣procedure TCheesePizza.Prepare;
 72bubuko.com,布布扣begin
 73bubuko.com,布布扣  Writeln(‘准备奶油比萨‘);
 74bubuko.com,布布扣end;
 75bubuko.com,布布扣
 76bubuko.com,布布扣{ TVeggiePizza }
 77bubuko.com,布布扣
 78bubuko.com,布布扣procedure TVeggiePizza.Bake;
 79bubuko.com,布布扣begin
 80bubuko.com,布布扣  Writeln(‘烘烤素比萨‘);
 81bubuko.com,布布扣end;
 82bubuko.com,布布扣
 83bubuko.com,布布扣procedure TVeggiePizza.Box;
 84bubuko.com,布布扣begin
 85bubuko.com,布布扣  Writeln(‘将素比萨装盒‘);
 86bubuko.com,布布扣end;
 87bubuko.com,布布扣
 88bubuko.com,布布扣procedure TVeggiePizza.Cut;
 89bubuko.com,布布扣begin
 90bubuko.com,布布扣   Writeln(‘将素比萨切成片‘);
 91bubuko.com,布布扣end;
 92bubuko.com,布布扣
 93bubuko.com,布布扣procedure TVeggiePizza.Prepare;
 94bubuko.com,布布扣begin
 95bubuko.com,布布扣  Writeln(‘准备素比萨‘);
 96bubuko.com,布布扣end;
 97bubuko.com,布布扣
 98bubuko.com,布布扣{ TClamPizza }
 99bubuko.com,布布扣
100bubuko.com,布布扣procedure TClamPizza.Bake;
101bubuko.com,布布扣begin
102bubuko.com,布布扣  Writeln(‘烘烤蛤蛎比萨‘);
103bubuko.com,布布扣end;
104bubuko.com,布布扣
105bubuko.com,布布扣procedure TClamPizza.Box;
106bubuko.com,布布扣begin
107bubuko.com,布布扣  Writeln(‘将蛤蛎比萨装盒‘);
108bubuko.com,布布扣end;
109bubuko.com,布布扣
110bubuko.com,布布扣procedure TClamPizza.Cut;
111bubuko.com,布布扣begin
112bubuko.com,布布扣   Writeln(‘将蛤蛎比萨切成片‘);
113bubuko.com,布布扣end;
114bubuko.com,布布扣
115bubuko.com,布布扣procedure TClamPizza.Prepare;
116bubuko.com,布布扣begin
117bubuko.com,布布扣  Writeln(‘准备蛤蛎比萨‘);
118bubuko.com,布布扣end;
119bubuko.com,布布扣
120bubuko.com,布布扣{ TPepperoniPizza }
121bubuko.com,布布扣
122bubuko.com,布布扣procedure TPepperoniPizza.Bake;
123bubuko.com,布布扣begin
124bubuko.com,布布扣  Writeln(‘烘烤Pepperoni比萨‘);
125bubuko.com,布布扣end;
126bubuko.com,布布扣
127bubuko.com,布布扣procedure TPepperoniPizza.Box;
128bubuko.com,布布扣begin
129bubuko.com,布布扣  Writeln(‘将Pepperoni比萨装盒‘);
130bubuko.com,布布扣end;
131bubuko.com,布布扣
132bubuko.com,布布扣procedure TPepperoniPizza.Cut;
133bubuko.com,布布扣begin
134bubuko.com,布布扣   Writeln(‘将Pepperoni比萨切成片‘);
135bubuko.com,布布扣end;
136bubuko.com,布布扣
137bubuko.com,布布扣procedure TPepperoniPizza.Prepare;
138bubuko.com,布布扣begin
139bubuko.com,布布扣  Writeln(‘准备Pepperoni比萨‘);
140bubuko.com,布布扣end;
141bubuko.com,布布扣
142bubuko.com,布布扣end.

bubuko.com,布布扣
 1bubuko.com,布布扣
 2bubuko.com,布布扣{《HeadFirst设计模式》工厂模式之简单工厂 }
 3bubuko.com,布布扣{ 简单工厂类                           }
 4bubuko.com,布布扣{ 编译工具 :Delphi7.0                 }
 5bubuko.com,布布扣{ 联系方式 :guzh-0417@163.com         }
 6bubuko.com,布布扣
 7bubuko.com,布布扣unit uSimpleFactory;
 8bubuko.com,布布扣
 9bubuko.com,布布扣interface
10bubuko.com,布布扣
11bubuko.com,布布扣uses
12bubuko.com,布布扣  uProducts;
13bubuko.com,布布扣
14bubuko.com,布布扣type
15bubuko.com,布布扣  { 静态工厂 }
16bubuko.com,布布扣  TSimplePizzaFactory = class(TObject)
17bubuko.com,布布扣  public
18bubuko.com,布布扣    class function CreatePizza(Category: Integer): TPizza;
19bubuko.com,布布扣  end;
20bubuko.com,布布扣
21bubuko.com,布布扣implementation
22bubuko.com,布布扣
23bubuko.com,布布扣{ TSimplePizzaFactory }
24bubuko.com,布布扣
25bubuko.com,布布扣class function TSimplePizzaFactory.CreatePizza(Category: Integer): TPizza;
26bubuko.com,布布扣begin
27bubuko.com,布布扣  case Category of
28bubuko.com,布布扣    0: Result := TCheesePizza.Create;    {创建奶油比萨      }
29bubuko.com,布布扣    1: Result := TVeggiePizza.Create;    {创建素比萨        }
30bubuko.com,布布扣    2: Result := TClamPizza.Create;      {创建蛤蛎比萨      }
31bubuko.com,布布扣    3: Result := TPepperoniPizza.Create; {创建Pepperoni比萨 }
32bubuko.com,布布扣  else
33bubuko.com,布布扣    Result := nil;
34bubuko.com,布布扣  end; // end case.
35bubuko.com,布布扣end;
36bubuko.com,布布扣
37bubuko.com,布布扣end.

bubuko.com,布布扣
 1bubuko.com,布布扣
 2bubuko.com,布布扣{《HeadFirst设计模式》工厂模式之简单工厂 }
 3bubuko.com,布布扣{ 简单工厂的用户类                      }
 4bubuko.com,布布扣{ 编译工具 :Delphi7.0                 }
 5bubuko.com,布布扣{ 联系方式 :guzh-0417@163.com         }
 6bubuko.com,布布扣
 7bubuko.com,布布扣unit uUserOfSimpleFactory;
 8bubuko.com,布布扣
 9bubuko.com,布布扣interface
10bubuko.com,布布扣
11bubuko.com,布布扣uses
12bubuko.com,布布扣  uProducts, uSimpleFactory;
13bubuko.com,布布扣
14bubuko.com,布布扣type
15bubuko.com,布布扣  { 工厂的用户 }
16bubuko.com,布布扣  TPizzaStore = class(TObject)
17bubuko.com,布布扣  public
18bubuko.com,布布扣    procedure OrderPizza;
19bubuko.com,布布扣  end;
20bubuko.com,布布扣
21bubuko.com,布布扣implementation
22bubuko.com,布布扣
23bubuko.com,布布扣{ TOrderPizza }
24bubuko.com,布布扣
25bubuko.com,布布扣procedure TPizzaStore.OrderPizza;
26bubuko.com,布布扣var
27bubuko.com,布布扣  aPizza: TPizza;
28bubuko.com,布布扣begin
29bubuko.com,布布扣  aPizza := TSimplePizzaFactory.CreatePizza(0);
30bubuko.com,布布扣
31bubuko.com,布布扣  aPizza.Prepare();
32bubuko.com,布布扣  aPizza.Bake();
33bubuko.com,布布扣  aPizza.Cut();
34bubuko.com,布布扣  aPizza.Box();
35bubuko.com,布布扣
36bubuko.com,布布扣  aPizza.Free;
37bubuko.com,布布扣end;
38bubuko.com,布布扣
39bubuko.com,布布扣end.

bubuko.com,布布扣
 1bubuko.com,布布扣
 2bubuko.com,布布扣{《HeadFirst设计模式》工厂模式之简单工厂 }
 3bubuko.com,布布扣{ 客户端                              }
 4bubuko.com,布布扣{ 编译工具 :Delphi7.0                 }
 5bubuko.com,布布扣{ 联系方式 :guzh-0417@163.com         }
 6bubuko.com,布布扣
 7bubuko.com,布布扣program pPizzaStoreTest;
 8bubuko.com,布布扣
 9bubuko.com,布布扣{$APPTYPE CONSOLE}
10bubuko.com,布布扣
11bubuko.com,布布扣uses
12bubuko.com,布布扣  uProducts in ‘uProducts.pas‘,
13bubuko.com,布布扣  uSimpleFactory in ‘uSimpleFactory.pas‘,
14bubuko.com,布布扣  uUserOfSimpleFactory in ‘uUserOfSimpleFactory.pas‘;
15bubuko.com,布布扣
16bubuko.com,布布扣var
17bubuko.com,布布扣  aPizzaStore: TPizzaStore;
18bubuko.com,布布扣
19bubuko.com,布布扣begin
20bubuko.com,布布扣  aPizzaStore := TPizzaStore.Create;
21bubuko.com,布布扣  aPizzaStore.OrderPizza;
22bubuko.com,布布扣  aPizzaStore.Free;
23bubuko.com,布布扣
24bubuko.com,布布扣  Readln;
25bubuko.com,布布扣end.

运行结果:

bubuko.com,布布扣

 

 
 

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂[转]

标签:des   blog   http   io   ar   os   sp   div   on   

原文地址:http://www.cnblogs.com/0x2D-0x22/p/4076335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!