Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂
简单工厂:工厂依据传进的参数创建相应的产品。
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.
Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂的更多相关文章
- Java设计模式之(工厂模式)--简单工厂模式--工厂方法模式--抽象工厂模式
工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...
- Java学习笔记——Java工厂模式之简单工厂
package com.app; import java.util.Date; /* * 工厂模式:简单工厂.工厂方法.抽象工厂 * * */ public class Test0718_Factor ...
- Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...
- 工厂模式之简单工厂模式,head first设计模式
简单设计模式比较简单,15分钟的时间,跟着我做,十几分钟学会简单设计模式,开始吧: 1.使用new实例化一个对象时,你肯定知道这种代码缺少弹性,绑定着具体的类会导致代码更加脆弱,简单工厂模式就是针对接 ...
- 设计模式之工厂模式之简单工厂(php实现)
github源码地址: git@github.com:ZQCard/design_pattern.git 1.简单工厂模式 特点:将调用者与创建者分离,调用者直接向工厂请求,减少代码的耦合.提高系统的 ...
- 【LabVIEW技巧】工厂模式_简单工厂
前言 上一个文章介绍了如何学习LabVIEW OOP,简要的提及了一些OOP学习中注意的事项,许多文章的读者反映写的太范,后文会逐步缩小范围,讨论在LabVIEW中各个模式的应用. 工厂模式概述 工厂 ...
- Java设计模式(1)——创建型模式之简单工厂模式(Simple Factory)
设计模式系列参考: http://www.cnblogs.com/Coda/p/4279688.html 一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高 ...
- c# 设计模式 之:工厂模式之---简单工厂
1.uml类图如下: 具体实现和依赖关系: 实现:SportCar.JeepCar.HatchbackCar 实现 Icar接口 依赖: Factory依赖 SportCar.JeepCar.Hatc ...
- javascript设计模式-工厂模式(简单工厂)
接口在工厂模式中起着很重要的作用,如果不对对象进行某种类型检查的以确保其实现了必要的方法,工厂模式的好处也就所剩无几了,举个简单的例子. Interface.js // Constructor. va ...
随机推荐
- 题解【luogu4168 [Violet]蒲公英】
Description 给出一个长度为 \(n\) 序列 \(a\) ,\(m\) 次询问,每次询问区间 \([l,r]\) 里的众数(出现次数最多的数).若有多个,输出最小的. \(a_i \leq ...
- 普通用户加sudo权限
没配置之前希望在普通用户下,通过sudo命令,让用户暂时拥有root权限,并创建一个文件夹.很明显,失败了,错误原因是:该用户暂没有root权限. 解决办法如下 1.打开sudoers文件 切换到r ...
- AngularJs 中的CheckBox前后台交互
前台页面: <div class="form-group"> <label for="CompanyName" class="col ...
- Spring实战第一部分总结
Spring实战第一部分总结 第一章 综述 1. DI依赖注入让相互协作的组件保持松散耦合,而 ...
- 2017.6.11 NOIP模拟赛
题目链接: http://files.cnblogs.com/files/TheRoadToTheGold/2017-6.11NOIP%E6%A8%A1%E6%8B%9F%E8%B5%9B.zip 期 ...
- jQuery简单的Ajax调用
index.php 的代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"& ...
- sudo: /usr/libexec/sudo/sudoers.so must be only be writable by owne
1. chmod 644 sudoers.so 2. pkexec chmod 0440 /etc/sudoers
- javascript 事件绑定
一.最简单和向后兼容性最好的事件绑定方法是把事件绑定到元素标识的属性.事件属性名称由事件类型外加一个“on”前缀构成.这些属性也被称为事件处理器 <INPUT TYPE="text&q ...
- CursorFileManager对cursor文件的读写
public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cur ...
- SpringBoot工程目录配置
Spring Boot建议的目录结果如下: root package结构:com.example.myproject com +- example +- myproject +- Applicat ...