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

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代码---工厂模式之简单工厂的更多相关文章

  1. Java设计模式之(工厂模式)--简单工厂模式--工厂方法模式--抽象工厂模式

    工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...

  2. Java学习笔记——Java工厂模式之简单工厂

    package com.app; import java.util.Date; /* * 工厂模式:简单工厂.工厂方法.抽象工厂 * * */ public class Test0718_Factor ...

  3. Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)

    工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...

  4. 工厂模式之简单工厂模式,head first设计模式

    简单设计模式比较简单,15分钟的时间,跟着我做,十几分钟学会简单设计模式,开始吧: 1.使用new实例化一个对象时,你肯定知道这种代码缺少弹性,绑定着具体的类会导致代码更加脆弱,简单工厂模式就是针对接 ...

  5. 设计模式之工厂模式之简单工厂(php实现)

    github源码地址: git@github.com:ZQCard/design_pattern.git 1.简单工厂模式 特点:将调用者与创建者分离,调用者直接向工厂请求,减少代码的耦合.提高系统的 ...

  6. 【LabVIEW技巧】工厂模式_简单工厂

    前言 上一个文章介绍了如何学习LabVIEW OOP,简要的提及了一些OOP学习中注意的事项,许多文章的读者反映写的太范,后文会逐步缩小范围,讨论在LabVIEW中各个模式的应用. 工厂模式概述 工厂 ...

  7. Java设计模式(1)——创建型模式之简单工厂模式(Simple Factory)

    设计模式系列参考: http://www.cnblogs.com/Coda/p/4279688.html 一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高 ...

  8. c# 设计模式 之:工厂模式之---简单工厂

    1.uml类图如下: 具体实现和依赖关系: 实现:SportCar.JeepCar.HatchbackCar 实现 Icar接口 依赖: Factory依赖 SportCar.JeepCar.Hatc ...

  9. javascript设计模式-工厂模式(简单工厂)

    接口在工厂模式中起着很重要的作用,如果不对对象进行某种类型检查的以确保其实现了必要的方法,工厂模式的好处也就所剩无几了,举个简单的例子. Interface.js // Constructor. va ...

随机推荐

  1. Leetcode 295. 数据流的中位数

    1.题目要求 中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个 ...

  2. like tp

    $where['insurance_order_num'] = array('like',$insurance_order_num.'%'); //右边模糊搜索,2099032902309张三 和 2 ...

  3. sql生成一个日期表

    SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Auth ...

  4. Eclipse Support UTF-8

    1.  Windows > Preferences > General > Content Types, set UTF-8 as the default encoding for ...

  5. II8部署WCF服务出错

    环境:Windows 2012 R2 + IIS 8.0 + .NET 4.5 错误404.3 - Not Found: 控制面板->程序->启用或关闭Windows功能,如下图所示,将需 ...

  6. c# 自定义排序Compare

    .net FrameWork 框架博大精深,用着忘着,计划对自己能够想到知识点梳理一下,此篇是对自定义排序的理解: class Program { static void Main(string[] ...

  7. word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method

    最近接到任务研究word2vec,感觉网络上关于这个的资料层次不齐,总感觉解释的都没有那么完善.或许就连作者本人也不是非常清楚为什么他的模型好使.论文中提到的negtive sampling给了我很大 ...

  8. sscanf的用法

    sscanf也太好用了8我竟然一直都不知道qaq #include<cstdio> #include<cstdlib> #include<cstring> #inc ...

  9. 【BZOJ4821】【SDOI2017】相关分析 [线段树]

    相关分析 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description Frank对天文学非常感兴趣,他经 ...

  10. DIV+CSS综合实例【传智PHP首页】

    1.首页结构 2.准备工作 所有素材放到与当前网页同级的目录下: 网页背景色.背景图: 主页宽度:1000px: 创建CSS文件,将CSS文件引入到当前的HTML文件中. 3.实现 效果图: HTML ...