`
cooldesigner
  • 浏览: 68068 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Factory Method

阅读更多

起源<o:p></o:p>

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

目的<o:p></o:p>

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

动机<o:p></o:p>

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

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

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

应用

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

TRedSpeedButton = class(TSpeedButton)<o:p></o:p>

  public<o:p></o:p>

    constructor Create(AOwner: TComponent); override;<o:p></o:p>

  end;<o:p></o:p>

 <o:p></o:p>

constructor TRedSpeedButton.Create(AOwner: TComponent);<o:p></o:p>

begin<o:p></o:p>

  inherited Create(AOwner);<o:p></o:p>

  Font.Color := clRed;<o:p></o:p>

end;<o:p></o:p>

 <o:p></o:p>

function TORedFactory.CreateSpeedButton(AOwner: TComponent): TSpeedButton;<o:p></o:p>

begin<o:p></o:p>

  Result := TRedSpeedButton.Create(AOwner);<o:p></o:p>

end;<o:p></o:p>

在上面的代码

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

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

分享到:
评论

相关推荐

    工厂方法模式(FactoryMethod)

    工厂方法模式是面向对象设计模式中的行为型模式之一,它提供了一种...在提供的文件列表中,“FactoryMethod”可能是包含这个简单示例代码的文件。如果有机会查看这个文件,将能更深入地理解工厂方法模式的实现细节。

    设计模式之“工厂方法模式[Factory Method Pattern]”

    今天我们要探讨的是设计模式中的一个经典成员——工厂方法模式(Factory Method Pattern)。工厂方法模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。 ### 一、什么是工厂方法模式? 工厂方法模式...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。

    Factory Method 工厂方法模式(创建型模式)

    ### Factory Method 工厂方法模式(创建型模式) #### 概述 在软件工程领域,设计模式是一种在特定上下文中解决常见问题的通用方案。Factory Method(工厂方法)模式是GoF(Gang of Four)设计模式之一,属于创建型...

    002FactoryMethod.rar

    工厂方法(Factory Method)设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂方法模式中,一个类的实例化延迟到了子类,这样做的好处是每个子类可以决定实例化哪一个类。这种类型的设计模式...

    创建型模式之工厂方法模式(Factory Method Pattern)

    1. 抽象工厂(Abstract Factory):这是工厂方法模式的核心接口,它声明了一组用于创建产品的公共方法。抽象工厂通常为抽象类或接口。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,提供具体的产品实例。...

    FactoryMethod

    在给定的"FactoryMethod"压缩包中,我们可以看到一个简单的工厂方法模式的实现。在这个例子中,可能会有如下结构: - `Product`:代表产品接口,例如定义了`produce()`方法。 - `ConcreteProduct1`, `...

    FactoryMethod.zip

    例如,`FactoryMethod.zip`可能包含一个`形状`的抽象类(产品接口)和几个具体的形状类(如`圆形`、`正方形`),以及一个`形状工厂`接口和几个具体工厂类(如`圆形工厂`、`正方形工厂`)。工厂类会根据需求返回不同...

    Factory Method设计模式

    Factory Method设计模式C#中的实现例子

    设计模式 t02FactoryMethod

    "t02FactoryMethod" 指的是工厂方法(Factory Method)设计模式,它是面向对象设计中的一种经典模式。这个模式主要关注于如何创建对象,通过引入一个工厂接口或者抽象类,将对象的创建过程封装起来,使得具体的对象...

    Factory_Method&&Simple_Factory

    工厂方法模式(Factory Method Pattern)是设计模式中的创建型模式之一,主要解决对象创建过程中的复杂性问题。在软件工程中,当一个类不知道它所必须创建的对象的类的时候,它就不会实例化对象,而是使用一个工厂...

    C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)

    C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)

    Factory Method Pattern.rar【GoF的工厂方法模式(C#源码)】

    它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar

    【Java设计模式-源码】Factory Method Pattern in Java: 使用多态制造增强灵活性

    **三、Factory Method设计模式的意图** 使用工厂方法模式定义一个用于创建对象的接口,但让子类决定实例化哪个类。这种创建型设计模式允许一个类将实例化推迟到子类,增强了代码的灵活性和可维护性。 **四、通过...

    FactoryMethodPattern.zip

    在"FactoryMethodPattern"的压缩包文件中,我们可以预期包含以下内容: - 示例代码:展示了如何在Swift或Objective-C中实现工厂方法模式。可能包含抽象产品接口、具体产品类、抽象工厂接口和具体工厂类的定义,以及...

    C++的设计模式之工厂方法模式(Factory Method)

    C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)

    工厂方法和抽象工厂——Factory Method & Abstract Factory

    在软件设计模式中,工厂方法(Factory Method)和抽象工厂(Abstract Factory)是两种非常重要的创建型模式。它们主要用于解决对象实例化的问题,提供了一种封装对象创建过程的方法,使得代码更加灵活,易于扩展和...

Global site tag (gtag.js) - Google Analytics