`
cooldesigner
  • 浏览: 67451 次
  • 性别: 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)组件和面向对象的编程模型而...

    PowerBuilder9.0实用教程_PowerBuilder9.0实用教程_

    PowerBuilder是第一个基于商业开发人员的面向对象编程(OOP)的应用程序,是一种&quot;快速构建商业应用程序&quot;的开发工具。IDC将之称为一种&quot;黄金标准&quot; -- 一个用于衡量所有应用开发工具的基准。与中国...

    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 控件的...

    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版本的开发环境。...

    Powerbuilder6.5安装包

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

    powerbuilder2019下载地址

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

    C++Builder6.0 Help帮助文档

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

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

    c++builder 6.0 lite1.07

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

    windowbuilder1.9.3.zip

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

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

    PowerBuilder 12.5手册大全

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

    PowerBuilder 9.0 中文帮助手册

    PowerBuilder是一款由Sybase公司推出的数据库应用快速开发工具,自1991年发布1.0版本以来,就因其高效快捷的集成开发环境、简洁友好的用户界面、功能强大的数据窗口技术以及性能优越的数据库访问能力而受到广大...

Global site tag (gtag.js) - Google Analytics