Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

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

http://www.cnblogs.com/DelphiDesignPatterns/archive/2009/07/24/1530536.html

{《HeadFirst设计模式》工厂模式之简单工厂 }
  3{ 产品类                              }
  4{ 编译工具 :Delphi7.0                 }
  5{ 联系方式 :[email protected]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.
时间: 2025-01-12 19:06:19

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂的相关文章

大话设计模式第八章---工厂模式及简单工厂模式比较

(简单工厂模式) (工厂模式) 简单工厂模式: 最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖.不过,违背了开放-封闭原则. 工厂模式: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 工厂模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来进行.你想要加功能,在简单工厂模式中是改工厂类

C#工厂模式之简单工厂

工厂模式是用工厂方法代替new操作的一种模式.工厂方法封装了多个相关联类的new方法,每次实例化这些类的时候不需要new多次,只需要调用工厂类的对应方法即可实例化这些类,并且是通过使用一个共同的接口来指向新创建的对象. 简单工厂模式是类的创建模式,又叫做静态工厂方法模式.就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例.一般涉及到三种角色. 简单工厂模式优缺点: 模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割.但由于工厂类集中了所有产品创建

设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)

原文地址:http://blog.chinaunix.net/uid-25958655-id-4243289.html 简单工厂模式 当需要加法类的时候,调用工厂类的CreateOperate(),要指定制造的Product 例如在大话设计模式P11给的运算工厂例子: public static Operation createOperate(string operate) { Operation oper = null; 12 switch (operate) { case "+":

设计模式——工厂模式(简单工厂)

一.什么是工厂模式: 在人类社会发展中,起初人们生活所需品都是自供自给,饭菜,衣服,家具都是由自己制作,这样感觉人们要和很多行业有接触,很麻烦.后来逐渐出现了各种”工厂“,由他们代替你去生产所需品,你要什么式样的东西只要告诉它们,它们就会给你生产好,这样你可以抽出大量精力去做其他重要的事了. 在程序世界中也一样,以前每当我们需要什么实例对象,都是自己new出来的,这样的坏处是会和很多类有牵连,耦合度高(要new一只狗,就要引入Dog类,要new一只猫,就要引入Cat类),那我们完全可以像真实世界

Java工厂模式(简单工厂、工厂方法、抽象工厂)

工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory Method).3:抽象工厂(Abstract Factory). 简单工厂(Simple Factory)又叫静态工厂,是工厂模式三中状态中结构最为简单的.主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例.我们来看一个具体的例子:假设一家工厂,几生产洗衣机,有生产冰箱

工厂模式,简单工厂模式,抽象工厂模式

说到这几个工厂模式有很多相似之处又有不同.最重要的是掌握这种思想,在以后搭建项目架构或写一些功能,应用这些思想,让自己的程序更健壮,或者说当你看到别人写的程序应用到了这种思想能够快速理解.话不多说,咱们先从入门级的小案例讲起. 一.简单工厂模式 基本概念:简单工厂模式是由一个工厂类根据接受到的消息决定要创建哪一个类的对象实例. 优点:在客户端只需要告诉工厂类创建什么实例就行,而不要关注具体怎么创建,因为那个工厂类有相关逻辑. 缺点:当添加新产品就不得不修改工厂逻辑,当类型较多时,可能造成工厂逻辑

对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)

前言 简单工厂模式,工厂方法模式,抽象工厂模式,这三个模式,当然还有单例模式,建造者模式等等,应该是日常工作中常用的,尤其是工厂模式,应该是最最常见的模式,对理解面向对象有重要的实际意义. 简单工厂模式 最简单,最直接,能满足大部分日常需求,不足是工厂类太简单——无法满足开闭原则,对多个产品的扩展不利 工厂方法模式——交给子类去创建 工厂方法模式,有了进步,把工厂类进行改进,提升为一个抽象类(接口),把对具体产品的实现交给对应的具体的子类去做,解耦多个产品之间的业务逻辑. 前面都是针对一个产品族

工厂模式:简单工厂、工厂方法、抽象工厂

一.简介 工厂模式主要是为创建对象提供接口,让子类决定实例化哪个类.按照<Java与模式>可以分为: 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 二.简单工厂 适用于业务简单的情况:小项目或具体产品扩展很少的情况. 它由以下三种角色组成: 具体工厂类 抽象产品类 具体产品来 UML类图关系如下: 三.工厂方法 概念:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法将一个类的实例化延迟到其子类. 有以下角色组成: 抽象工厂类 具体工厂类 抽象产品类 具体产品类 UML类图

工厂模式之简单工厂模式

简单工厂模式(静态工厂方法模式)就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例.其结构如下图所示: 简单工厂模式涉及到工厂角色.抽象产品角色和具体产品角色.    (1)工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑.工厂类在客户端的直接调用下创建产品对象,镪往往由一个具体Java类实现.    (2)抽象产品(Product)角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或它们共同拥有的接口.抽象产品角色可以用一个Java