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

Builder

阅读更多

起源

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

目的

将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示<o:p></o:p>

动机

一个生成器(Builder)与抽角工厂(Abstract Factory)从概念上来看有点类似。但不同的是,生成器将单一复杂的类的各个部件通过引用不同的构造器生成,然面抽象工厂则让你创建整个具体的类。比如说:一个建筑工可以构造房子、别墅、办公室。你可雇用不同的建筑工来构造砖房、木房。虽然你可指定房子的形状、大小。而其他肋手用来构造房子的部门、并非全部。比如构建窗了,门,停车场。<o:p></o:p>

应用

 <o:p></o:p>

下面的例子先引入了一个抽象类TabstractFormBuilder和它的两个具体子类TredFormBuilderTblueFormBuilderTabstractFormBuilder声明了一些类的构造器

 <o:p></o:p>

type<o:p></o:p>

  TAbstractFormBuilder = class<o:p></o:p>

  private<o:p></o:p>

    FForm: TForm;<o:p></o:p>

    procedure BuilderFormClose(Sender: TObject; var Action: TCloseAction);<o:p></o:p>

  protected<o:p></o:p>

    function GetForm: TForm; virtual;<o:p></o:p>

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

    procedure CreateForm(AOwner: TComponent); virtual;<o:p></o:p>

    procedure CreateSpeedButton; virtual; abstract;<o:p></o:p>

    procedure CreateEdit; virtual; abstract;<o:p></o:p>

    procedure CreateLabel; virtual; abstract;<o:p></o:p>

    property Form: TForm read GetForm;<o:p></o:p>

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

 <o:p></o:p>

type<o:p></o:p>

  TRedFormBuilder = class(TAbstractFormBuilder)<o:p></o:p>

  private<o:p></o:p>

    FNextLeft, FNextTop: Integer;<o:p></o:p>

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

    procedure CreateForm(AOwner: TComponent); override;<o:p></o:p>

    procedure CreateSpeedButton; override;<o:p></o:p>

    procedure CreateEdit; override;<o:p></o:p>

    procedure CreateEdit; override;<o:p></o:p>

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

 <o:p></o:p>

type<o:p></o:p>

  TBlueFormBuilder = class(TAbstractFormBuilder)<o:p></o:p>

  private<o:p></o:p>

    FNextLeft, FNextTop: Integer;<o:p></o:p>

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

    procedure CreateForm(AOwner: TComponent); override;<o:p></o:p>

    procedure CreateSpeedButton; override;<o:p></o:p>

    procedure CreateEdit; override;<o:p></o:p>

    procedure CreateLabel; override;<o:p></o:p>

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

有上面的接口中:

·      声明了一个创建抽象产品对象的接口:TAbstractFormBuilder

¨    TAbstractFormBuilder有三个抽象的工厂方法CreateFormCreateSpeedButtonCreateEditCreateEdit

·      TBlueFormBuilderTRedFormBuilder用来实现创建具体产品对象的方法

 <o:p></o:p>

 <o:p></o:p>

运行的时候,客户程序调用一个具体类的公共构造器来创建它某一些部分,具体的构造器实例的调用方法如下:

 <o:p></o:p>

 <o:p></o:p>

procedure TForm1.Create3ComponentFormUsingBuilder(ABuilder: TAbstractFormBuilder);<o:p></o:p>

var<o:p></o:p>

  NewForm: TForm;<o:p></o:p>

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

  with ABuilder do begin<o:p></o:p>

    CreateForm(Application);<o:p></o:p>

    CreateEdit;<o:p></o:p>

    CreateSpeedButton;<o:p></o:p>

    CreateLabel;<o:p></o:p>

    NewForm := Form;<o:p></o:p>

    if NewForm <> nil then NewForm.Show;<o:p></o:p>

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

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

分享到:
评论

相关推荐

    C++Builder5 and C++Builder6编程实例精解编程实例精解(包含 Builder6 PDF档).7z

    C++Builder是一款由Embarcadero Technologies开发的集成开发环境(IDE),主要针对C++语言,为Windows平台提供快速应用程序开发(RAD)解决方案。C++Builder5和C++Builder6是该系列的不同版本,分别发布于2001年和...

    PowerBuilder12.0绿色版

    **PowerBuilder 12.0 简介** PowerBuilder是一款由Sybase(现已被SAP收购)开发的集成开发环境(IDE),主要用于构建企业级的数据库应用系统。这款工具以其强大的数据窗口(DataWindow)组件和面向对象的编程模型而...

    PowerBuilder8.3.rar

    PowerBuilder 8.3 是一款历史悠久的开发工具,主要用于构建企业级的应用程序,尤其是在数据库应用领域。这款软件由Sybase公司开发,以其独特的DataWindow控件和可视化编程环境而闻名。下面将详细介绍PowerBuilder ...

    powerbuilder11.5.rar

    PowerBuilder 11.5的新功能 包括部署PowerBuilder非可视对象(NVOs),包括.NET编译和.NET Smart Client应用 快速使用,并在Web上部署包括Web Services 和 PowerBuilder应用在内的PowerBuilder非可视对象(NVOs) 支持...

    PowerBuilder控件使用手册.pdf

    PowerBuilder 控件使用手册 PowerBuilder 是一款功能强大且流行的开发工具,提供了多种控件来满足不同的开发需求。在本手册中,我们将详细介绍 PowerBuilder 控件的使用方法,包括 Microsoft Web Browser 控件的...

    c++ builder 2007 安装程序

    C++ Builder 2007 是一款由Embarcadero Technologies公司推出的集成开发环境(IDE),专注于C++语言的编程工具。它集成了编译器、调试器、代码编辑器和项目管理工具,旨在帮助开发者高效地创建Windows应用程序。这款...

    powerbuilder9.0下载地址

    ### PowerBuilder 9.0 下载与简介 #### 一、PowerBuilder 9.0 概述 PowerBuilder 是一款由美国 Sybase 公司(现已被 SAP 收购)开发的企业级应用快速开发工具。它结合了强大的数据库管理功能与用户友好的图形界面...

    c++builder6安装包

    C++Builder 6是一款由Borland公司(后被Embarcadero Technologies收购)开发的集成开发环境(IDE),主要用于C++编程语言的应用程序开发。它结合了强大的编译器、调试器、可视化设计工具和其他实用功能,为开发者...

    PlatForm Builder5.0下载

    平台构建器(Platform Builder)是微软提供的一款强大的操作系统开发工具,主要用于构建定制化的嵌入式操作系统,如Windows CE。在本场景中,我们关注的是Platform Builder 5.0,它是Windows CE 5.0版本的开发环境。...

    DspBuilder中文基础教程

    《DspBuilder中文基础教程》是针对初学者的教程,介绍如何使用DspBuilder进行硬件设计。本教程以两个简单电路模型为例,详细阐述了Matlab、DSPBuilder、QuartusII这三个工具软件联合开发的设计流程。 1. EDA技术与...

    powerbuilder2019下载地址

    PowerBuilder 2019是Sybase公司推出的一款强大的企业级应用程序开发工具,主要用于构建数据库驱动的Windows应用程序。它以其直观的图形用户界面(GUI)和数据窗口组件而闻名,大大简化了数据库应用的开发过程。在本...

    windowbuilder1.9.3.zip

    WindowBuilder是Eclipse IDE中的一个强大工具,专用于简化Swing和 SWT(Java窗口小部件工具包)应用程序的开发。1.9.3版本的WindowBuilder提供了对这些框架的直观图形化界面,允许开发者通过拖放组件来创建用户界面...

    C++Builder6.0 Help帮助文档

    C++Builder 6.0 是一个强大的集成开发环境(IDE),专为使用C++语言进行Windows应用程序开发设计。它提供了丰富的工具集、图形化界面设计、数据库连接支持以及高效的编译器。在安装C++Builder 6.0时,有时可能会遇到...

    Powerbuilder6.5安装包

    PowerBuilder 6.5是一款由Sybase公司推出的经典C/S(Client/Server)架构下的应用程序开发工具,尤其在企业级信息系统管理中具有广泛的应用。它以其强大的数据窗口控件、直观的图形化界面以及高效的开发效率,深受...

    windowbuilder安装教程.zip

    WindowBuilder是Eclipse集成开发环境(IDE)中的一个强大工具,专门用于简化Java GUI(图形用户界面)的设计工作。在Eclipse Mars 4.5版本中,安装WindowBuilder可能需要一些特殊的步骤,因为并不是所有公开的教程都...

    PowerBuilder 12.5.2 5629

    PowerBuilder 12.5.2 5629 是一款强大的、面向对象的软件开发工具,主要用于构建企业级的应用程序。它由Sybase(现为SAP的一部分)开发,以其直观的图形用户界面(GUI)和数据窗口技术而闻名。这次的更新,即5629...

    PowerBuilder 12.5手册大全

    PowerBuilder 12.5是一款强大的企业级应用开发工具,尤其在数据窗口设计、数据库应用程序构建方面具有显著优势。这款工具由Sybase公司(后被SAP收购)开发,为开发人员提供了高效的可视化编程环境,使得开发人员可以...

    c++builder 6.0 lite1.07

    C++Builder 6.0 Lite 1.07 是一款历史悠久但依然实用的集成开发环境(IDE),由Borland公司开发。这个版本虽然相对较老,但却因其稳定性和兼容性而受到一部分用户的喜爱,即便是在更新的操作系统如Windows 8.1上也能...

    C++Builder 6 Update Pack4

    C++Builder 6 Update Pack 4 是一个针对 Borland C++Builder 6 的重要更新程序,旨在提升软件的性能、稳定性和兼容性。这个更新包是C++Builder 6用户必须安装的,以确保他们的开发环境能跟上最新的技术趋势,并解决...

    PowerBuilder精美框架

    "PowerBuilder精美框架"是一个专为PowerBuilder开发者设计的用户界面(UI)框架,它具有Windows 7的视觉风格,提供了高度封装的组件和控件,使得开发者能够快速构建出与Winform同样美观的界面。这个框架展示了Power...

Global site tag (gtag.js) - Google Analytics