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

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. CCF-20170901

    试题编号:    201709-1 试题名称:    打酱油 时间限制:    1.0s 内存限制:    256.0MB 问题描述 小明带着N元钱去买酱油.酱油10块钱一瓶,商家进行促销,每买3瓶送 ...

  2. c# txt 文件上传、写入TXT文件、创建图形验证码

    asp.net mvc 图片上传 html 在使用包含文件上传控件的表单时,必须使用 enctype="multipart/form-data" 属性 <form encty ...

  3. Large Class--过大的类--要重构的信号

    如果想利用单个类做太多事情,其内往往就会出现太多实例变量.一旦如此,Duplicated Code也就接踵而至.     解决方法:     1.将类内彼此相关的变量,将它们放在一起.使用Extrac ...

  4. iOS-Apple苹果iPhone开发公开API

      iOS-Apple苹果iPhone开发 //技术博客http://www.cnblogs.com/ChenYilong/   新浪微博http://weibo.com/luohanchenyilo ...

  5. 【洛谷 P3194】 [HNOI2008]水平可见直线 (单调栈)

    题目链接 把线段以斜率为第一关键字,截距为第二关键字升序排序. 然后维护一个单调栈,保证栈中两两线段的交点的\(x\)坐标单调上升就行了.栈中的线段即为所求. #include <cstdio& ...

  6. bzoj 1179 tarjan+spfa

    首先我们可以将这个图缩成DAG,那么问题中的路线就可以简化为DAG中的一条链,那么我们直接做一遍spfa就好了. 反思:开始写的bfs,结果bfs的时候没有更新最大值,而是直接赋的值,后来发现不能写b ...

  7. Mimikatz.ps1本地执行

    PS C:\Users\hacker> Get-ExecutionPolicy Restricted PS C:\Users\hacker> Set-ExecutionPolicy Unr ...

  8. C语言分割字符串函数strtok

    在编程过程中,有时需要对字符串进行分割.而有效使用这些字符串分隔函数将会给我们带来很多的便利. 下面我将在MSDN中学到的strtok函数做如下翻译. strtok :在一个字符串查找下一个符号 ch ...

  9. U-Boot启动过程完全分析<转>

    转载自:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 1.1       U-Boot工作过程 U-Boot启动内核的过程可 ...

  10. 安装icephp 记

    下面开始安装: 一:yum 安装 首先需要添加一个yum源. # vi /etc/yum.repos.d/zeroc-ice-amzn.repo写入: [zeroc-ice]name=Ice 5 fo ...