设计模式、用Delphi描述-->Factory Method模式

原创 2001年11月01日 20:35:00

Factory Method模式(工厂方法)

起源<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Delphi中的Factory Method模式在基本Factory Method模式进行了扩展。更多Factory Method模式的资料请参阅 [Gam+]

目的

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method模式使一个类的实例化延迟到其子类。

动机

Abstract Factory不同的是Abstract Factory用于创建类具体对象Factory Method用于创建类。抽象工厂Abstact Factory模式的看作是工厂方法Factory Methods的一个集合。

此模式封装了类构造并将具体类与客户程序通过抽象接口完全分离。

一个这样的例了,你有一个面向对象的商业系统,可能要处理多个目标数据库系统。些时,客户程只需知道相关的商业类,而没必要了解它们的具体应用:存储、获取。

应用

Abstract Factory的例子中,每一个虚拟的特色构造器函数是一个Factory Method。在它们的实现中返回了一个指定的特色类。

TRedSpeedButton = class(TSpeedButton)

  public

    constructor Create(AOwner: TComponent); override;

  end;

 

constructor TRedSpeedButton.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  Font.Color := clRed;

end;

 

function TORedFactory.CreateSpeedButton(AOwner: TComponent): TSpeedButton;

begin

  Result := TRedSpeedButton.Create(AOwner);

end;

在上面的代码

·      TORedFactory定义一个工厂方法并返回TredSpeedButton实例

而返回对象真正的构者是TredSpeedButton

设计模式、用Delphi描述-->Factory Method模式

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 17:32
  • 77

设计模式、用Delphi描述-->Abstract Factory模式

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 00:02
  • 152

设计模式总结之Factory Method Pattern(工厂方法模式)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。...
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:44
  • 1262

设计模式——抽象工厂模式(Abstract Factory)

要想正确的理解设计模式,首先必须明确它是为了解决什么问题而提出来的。 抽象设计模式概念:         针对抽象工厂这个设计模式,我查找了不少资料,感觉只有涉及产品级别和产品族的才是理解了抽象工厂设...
  • u012909091
  • u012909091
  • 2014年08月02日 16:52
  • 3596

设计模式:Abstract Factory和Builder(比较区别,个人认为讲得很明白)

如果说 Factory和Prototype是同一个层次的话,那么Abstract Factory和Builder就是更高一级的层次。 1 Abstact Factory   在上面的Factory类型...
  • lovingprince
  • lovingprince
  • 2007年04月17日 10:59
  • 4223

Factory Method vs Abstract Factory

Factory Method vs Abstract Factory
  • u010373266
  • u010373266
  • 2016年12月20日 16:26
  • 315

Java设计模式之工厂方法模式【Factory Method Pattern】

工厂方法模式(FACTORY METHOD)是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的...
  • Lixuanshengchao
  • Lixuanshengchao
  • 2016年05月04日 21:27
  • 964

boost::factory实现对象工厂设计模式

转载自:http://blog.csdn.net/mpforwd/article/details/5791699 #ifndef MP_OBJECT_FACTORY_H #define MP_...
  • yahohi
  • yahohi
  • 2017年08月31日 16:55
  • 454

delphi版大话设计模式

前段时间听到一个小家伙说, 只听过JAVA. C#有设计模式, DELPHI应该没有吧, 我听了窃笑,  但又不好明说,  一来,  用delphi的人现在本来就很少了,   以前做delphi的年龄...
  • x34205
  • x34205
  • 2013年09月29日 22:42
  • 741

浅谈JAVA设计模式之——工厂方法(FactoryMethod)

一、概述             定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。       二、适用性  当一个类不知道它所必须创建...
  • l1028386804
  • l1028386804
  • 2015年05月02日 17:27
  • 1145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式、用Delphi描述-->Factory Method模式
举报原因:
原因补充:

(最多只允许输入30个字)