Delphi design mode: "Headfirst design mode" DELPHI7 Code---Factory mode simple factory [turn]

Source: Internet
Author: User

Simple factory: The factory creates the corresponding product according to the parameters passed in.


1
2{"Headfirst design mode" Factory mode Simple Factory}
3{Product Class}
4{compiler tool: Delphi7.0}
5{Contact information: [Email protected]}
6
7unit uproducts;
8
9interface
10
11type
Tpizza = Class (TObject)
Public
Procedure Prepare; Virtual Abstract
Procedure Bake; Virtual Abstract
Procedure Cut; Virtual Abstract
Procedure Box; Virtual Abstract
The end;
19
Tcheesepizza = Class (Tpizza)
Public
Procedure Prepare; Override
Procedure Bake; Override
Procedure Cut; Override
Procedure Box; Override
The end;
27
Tveggiepizza = Class (Tpizza)
Public
Procedure Prepare; Override
Procedure Bake; Override
Procedure Cut; Override
Procedure Box; Override
The end;
35
Tclampizza = Class (Tpizza)
Notoginseng Public
Procedure Prepare; Override
Procedure Bake; Override
Procedure Cut; Override
Procedure Box; Override
The end;
43
Tpepperonipizza = Class (Tpizza)
Public
Procedure Prepare; Override
Procedure Bake; Override
Procedure Cut; Override
Procedure Box; Override
The end;
51
52implementation
53
54{Tcheesepizza}
55
56procedure Tcheesepizza.bake;
57begin
Writeln (' Bake cream Pizza ');
59end;
60
61procedure Tcheesepizza.box;
62begin
Writeln (' Will cream pizza box ');
64end;
65
66procedure Tcheesepizza.cut;
67begin
Writeln (' Slice the cream pizza ');
69end;
70
71procedure Tcheesepizza.prepare;
72begin
Writeln (' Prepare butter pizza ');
74end;
75
76{Tveggiepizza}
77
78procedure Tveggiepizza.bake;
79begin
Writeln (' Baking vegetarian pizza ');
81end;
82
83procedure Tveggiepizza.box;
84begin
Writeln (' The Vegetarian Pizza Box ');
86end;
87
88procedure Tveggiepizza.cut;
89begin
Writeln (' Cut the vegetarian pizza into slices ');
91end;
92
93procedure Tveggiepizza.prepare;
94begin
Writeln (' prepared pizza ');
96end;
97
98{Tclampizza}
99
100procedure Tclampizza.bake;
101begin
102 Writeln (' Bake clam Oyster pizza ');
103end;
104
105procedure Tclampizza.box;
106begin
107 Writeln (' Oyster pizza Box ');
108end;
109
110procedure Tclampizza.cut;
111begin
Writeln (' cut clam pizza into slices ');
113end;
114
115procedure Tclampizza.prepare;
116begin
117 Writeln (' Prepare clam pizza ');
118end;
119
120{Tpepperonipizza}
121
122procedure Tpepperonipizza.bake;
123begin
124 Writeln (' Bake pepperoni pizza ');
125end;
126
127procedure Tpepperonipizza.box;
128begin
129 Writeln (' Will pepperoni pizza cartoning ');
130end;
131
132procedure Tpepperonipizza.cut;
133begin
134 Writeln (' cut pepperoni pizza into slices ');
135end;
136
137procedure Tpepperonipizza.prepare;
138begin
139 Writeln (' Preparing pepperoni pizza ');
140end;
141
142end.

1
2{"Headfirst design mode" Factory mode Simple Factory}
3{Simple Factory Class}
4{compiler tool: Delphi7.0}
5{Contact information: [Email protected]}
6
7unit usimplefactory;
8
9interface
10
11uses
uproducts;
13
14type
15 {Static Factory}
Tsimplepizzafactory = Class (TObject)
Public
class function Createpizza (Category:integer): Tpizza;
The end;
20
21implementation
22
23{Tsimplepizzafactory}
24
25class function Tsimplepizzafactory.createpizza (category:integer): Tpizza;
26begin
Case Category of
0:result: = tcheesepizza.create; {Create Cream Pizza}
1:result: = tveggiepizza.create; {Create Vegetarian Pizza}
2:result: = tclampizza.create; {Create Clam Pizza}
3:result: = tpepperonipizza.create; {Create pepperoni Pisa}
+ Else
Result: = nil;
The end; End case.
35end;
36
37end.

1
2{"Headfirst design mode" Factory mode Simple Factory}
3{user class for Simple factory}
4{compiler tool: Delphi7.0}
5{Contact information: [Email protected]}
6
7unit uuserofsimplefactory;
8
9interface
10
11uses
Uproducts, Usimplefactory;
13
14type
15 {User of Factory}
Tpizzastore = Class (TObject)
Public
Procedure Orderpizza;
The end;
20
21implementation
22
23{Torderpizza}
24
25procedure Tpizzastore.orderpizza;
26var
Apizza:tpizza;
28begin
Apizza: = Tsimplepizzafactory.createpizza (0);
30
Apizza.prepare ();
Apizza.bake ();
Apizza.cut ();
Apizza.box ();
35
Apizza.free;
37end;
38
39end.

1
2{"Headfirst design mode" Factory mode Simple Factory}
3{Client}
4{compiler tool: Delphi7.0}
5{Contact information: [Email protected]}
6
7program ppizzastoretest;
8
9{$APPTYPE CONSOLE}
10
11uses
Uproducts in ' Uproducts.pas ',
Usimplefactory in ' Usimplefactory.pas ',
Uuserofsimplefactory in ' Uuserofsimplefactory.pas ';
15
16var
Apizzastore:tpizzastore;
18
19begin
Apizzastore: = tpizzastore.create;
Apizzastore.orderpizza;
Apizzastore.free;
23
READLN;
25end.
Operation Result:

Delphi design mode: "Headfirst design mode" DELPHI7 Code---Factory mode simple factory [turn]

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.