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