设计模式、用Delphi实现---->Builder模式

2024版RAD Studio Delphi/C++ Builder 12.2:所有新功能和增强功能 在 RAD Studio 12.1 发布 5 个月后,在 RAD Studio 12 发布 10 个月后,RAD Studio 12.2建立在具有里程碑意义的客户接受度的基础上,并将 IDE 指向新的视野,例如支持 AI 的编码和用于企业应用程序的64 位版本编译器。 阅读详情

 

 

Builder模式

起源

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

目的

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

动机

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

应用

 

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

 

type

  TAbstractFormBuilder = class

  private

    FForm: TForm;

    procedure BuilderFormClose(Sender: TObject; var Action: TCloseAction);

  protected

    function GetForm: TForm; virtual;

  public

    procedure CreateForm(AOwner: TComponent); virtual;

    procedure CreateSpeedButton; virtual; abstract;

    procedure CreateEdit; virtual; abstract;

    procedure CreateLabel; virtual; abstract;

    property Form: TForm read GetForm;

  end;

 

type

  TRedFormBuilder = class(TAbstractFormBuilder)

  private

    FNextLeft, FNextTop: Integer;

  public

    procedure CreateForm(AOwner: TComponent); override;

    procedure CreateSpeedButton; override;

    procedure CreateEdit; override;

    procedure CreateEdit; override;

  end;

 

type

  TBlueFormBuilder = class(TAbstractFormBuilder)

  private

    FNextLeft, FNextTop: Integer;

  public

    procedure CreateForm(AOwner: TComponent); override;

    procedure CreateSpeedButton; override;

    procedure CreateEdit; override;

    procedure CreateLabel; override;

  end;

有上面的接口中:

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

¨    类TAbstractFormBuilder有三个抽象的工厂方法CreateForm、CreateSpeedButton、CreateEdit、CreateEdit

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

 

 

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

 

 

procedure TForm1.Create3ComponentFormUsingBuilder(ABuilder: TAbstractFormBuilder);

var

  NewForm: TForm;

begin

  with ABuilder do begin

    CreateForm(Application);

    CreateEdit;

    CreateSpeedButton;

    CreateLabel;

    NewForm := Form;

    if NewForm <> nil then NewForm.Show;

  end;

end;

Delphi 11必备指南:使用Git集成Python4Delphi的完整步骤 1)设置win32-bit选项。2)设置win64-bit选项。 阅读详情

相关推荐

Python图形用户界面设计-Delphi For Python高级开发教程

Delphi作为一个快速可视化跨平台原生本机开发工具和编程语言,是使用Python开发GUI图形用户界面最前沿、最高效、最有发展前途的技术,使用Delphi的VCL和FMX组件框架可以5倍的开发效率为Python开发跨平台支持Windows, Android, iOS, macOS, Linux的App应用。

Delphi开发局QQ群:32422310 4014

Delphi语言的游戏设计模式

设计模式是针对特定问题的最佳解决方案,是经验丰富的开发者总结出的方法和技巧。在游戏开发中,设计模式能够帮助我们更直观地理解系统结构,提升团队协作效率,并减少后期维护的成本。在Delphi语言的游戏开发中,设计模式为我们提供了一种高效的开发手段。通过合理的模式选择和实现,我们能够显著提高代码的可读性、可维护性与可扩展性。希望本文对游戏开发者在Delphi中运用设计模式有所帮助,可以更好地应对游戏项目中的挑战。设计模式并非万无一失,在实际运用时,开发者需要根据具体的项目需求、团队技术积累等因素进行灵活调整。

2501_91390782的博客 601

Delphi 程序直接调用 Python 的函数

在这篇文章里面,我提到,一个 Python 的函数,我用 Delphi 无法直接调用它,所以我对它做了一个 Python 的包装。原因是,那是我第一次学习使用 Python4Delphi 这个控件。那时候要执行 Python 代码,我只会使用 PythonEngine1.ExecStrings(Python代码) 这样的方式。这样做,就是在 Delphi 的程序里面,加载了 Python 的环境,并在这个环境里面去执行了代码里面的可执行的部分。

pcplayer的博客 2306

delphi+python混合编程

基于免费组件Python for Delphi (P4D) ,完成delphi+python的混合编程,delphi完成GUI部分,Python完成后台数据处理部分。

weixin_41614618的博客 3928

Python4Delphi 之用 Delphi 写 Python 模块

在 Delphi 程序和 Python 程序的交互,可以用 Delphi 实现一个 Python 模块,用 Delphi 实现这个模块的函数,然后在 Python 里面的代码来调用。实现这个功能的简单架构:1. PythonModule1 用来代表一个可以给 Python 调用的模块。2. Delphi 实现的函数,通过的方式成为 Python 的模块的函数。3. 被 Delphi 的 PythonEngine1 执行的 Python 代码,可以import这个模块并执行里面的函数。

pcplayer的博客 2402

结合Delphi和Python的优势:使用Delphi VCL组件快速构建超现代的Python本机Windows GUI桌面酷炫用户界面应用

Delphi开发Pyhron GUI 有时您的应用程序需要一个用户界面,但是为Python应用程序制作用户界面最好的方法是什么?输入用于Python的DelphiVCL。VCL是成熟的Windows本机GUI框架,具有庞大的包含的可视组件库和强大的第三方组件集合。它是本机Windows应用程序的主流框架,但是如何在Python中使用它呢?多亏了DelphiVCL Python软件包(基于开源Python4Delphi库),VCL是用于使用Python构建本机Windows...

Delphi开发局QQ群:32422310 1万+

设计模式、用Delphi实现---->Builder模式 (转)

设计模式、用Delphi实现----&gtBuilder模式 (转)[@more@] Builder模式 起源 Delphi中的Builder模式在基本Builder模式进行了扩展。更多Builder模式的...

csd3176的博客 106

Delphi 程序员初学 Python 笔记

一直想学 Python 但一直没真正去摸索。入门书倒是买了几本也大概看了一下。但不真正动手写点程序,是没法入门的。作为熟悉 Delphi 编程的人,当然想在 Delphi 的程序里面调用 Python 的一大堆库的功能,比如现如今火爆的 AI 库。首先,学习 Python 需要一个编程工具,可能一般人用文本编辑器或者用 VSCode 的比较多。但作为熟悉 Delphi 的人,发现有一个开源工具 PythonScripter 非常好用。

pcplayer的博客 1592

Delphi版设计模式

用delphi诠释设计模式

QAQ的小耗子的博客 553

利用Python for Delphi扩展Delphi程序功能

Python语言因其简洁性和强大的库支持,已经成为开发者工具箱中的重要工具。随着应用程序复杂性的增加,Delphi开发者寻求引入Python来提升开发效率和项目的功能性。Python for Delphi(P4D)集成允许Delphi应用程序创建和管理Python引擎,实现Python代码的执行和管理。这一技术突破带来了新的开发可能,让Delphi开发者能够利用Python的丰富资源,同时维持Delphi高效、稳定的系统开发能力。

weixin_29323977的博客 1496

NVIDIA DGX Spark 开发环境深度配置与优化指南

定期系统维护每月执行一次完整的系统更新监控存储空间使用情况,及时清理临时文件定期检查硬件健康状况开发习惯优化使用tmux或screen管理长时间运行的任务配置自动化测试和代码质量检查建立完善的项目文档体系性能调优周期每月重新评估和调整系统参数根据工作负载特点优化容器配置持续监控和记录性能指标DGX Spark作为一个强大的AI开发平台,其真正的价值需要通过精细的环境配置和优化才能充分发挥。本文提供的配置方案和建议均基于实际生产环境经验,旨在帮助开发者构建稳定、高效、可维护的开发环境。

time_days的博客 3686

Delphi版设计模式之单例二

​接上篇Delphi版设计模式之单例一,细心的朋友可能发现我在上一篇文章中重写类NewInstance和FreeInstance函数,原因是:【在delphi中编译器对构造函数的保护级别进行了处理,即便设为private,编译器仍然会将其修正为public,所以覆盖基类中的NewInstance类方法,系统在每次构造对象时都会调用这个类方法,通过重载它就可以实现对构造函数的控制】,同时在上篇文章中有一段核心代码 我以注释的形式标注这里在并发环境下存在安全隐患,那么现在我们就通过多线程的方式研究一下这个问.

舞动的代码 579

基于深度学习的图像去雨(Opencv,Pytorch,Cnn)

最近做了一个图像去雨项目,使用的语言为Python,深度学习框架为Pytorch。去雨效果不错,具体请看效果视频!图像去雨(GAN,Opencv,Pytorch)

Czqqwer的博客 2612

python4delphi和tesserocr库安装配置

1、下载python4delphi控件包 https://github.com/pyscripter/python4delphi 2、在DelphiIDE里打开source下面对应pkg,然后compile、install 3、安装python2.7.16,注意:要安装相应位长的python程序,一般是安装32位 4、把python安装目录加到系统环境变量path里,scripts也加到p...

疯流人物 1290

OpenClaw 完整部署教程

版本:OpenClaw 2026.2.13更新日期:2026-02-26适用系统:Linux (Ubuntu/Debian/CentOS)

qq_39436086的博客 2318

OpenWRT软件源更换保姆级教程:从国内镜像到官方源一键切换(含常见报错解决)

本文提供OpenWRT软件源更换的详细教程,涵盖从国内镜像源到官方源的切换方法,并深度解析常见报错解决方案。针对国内网络环境,指导用户如何精准定位系统信息、备份配置、选择并配置清华等国内镜像源,以及处理签名验证失败、依赖缺失、404错误等典型问题,旨在提升软件包管理效率与稳定性。

weixin_29229261的博客 1939

设计模式、用Delphi实现---->Wrapper pattern

Wrapper pattern起源Delphi中的Wrapper模式是在 ‘Adapter’ or ‘Wrapper’ 的基础上上改造的。更多的介绍请查阅[Gam+, pages 139..150]。目的 ‘将一个接口转换成客户期待的别外一个接口。Wrappers 模式使得原本由于接口不兼容而不能一起工作类可以一起工作,参阅 [Gam+ 139].动机在Delphi的O

programlover的专栏 1008

【k8s面试】超详细kubernetes面试题总结,面试必问!(附200道K8s Docker面试真题+答案详解

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_83620959的博客 1465

python delphi_折腾python4delphi

python4delphi有更新了,支持最新的python(python3.7)和delphi(10.3)。git上下载更新的python4delphi,然后安装控件,打开demo1,提示不能打开python27.dll,这个,我电脑上的是3.6,肯定不行,改TPythonEngine控件的DllPath,DllName,RegVersion( 这个属性可以不管)。。。运行,还是不行,还是装载了'...

weixin_39721924的博客 684

数控系统(CNC)系列:Hurco VMX42SR_(11).加工准备流程

在开始使用Hurco VMX42SR进行加工之前,首先需要对机床进行初始设置。这包括机床的水平调整、电源连接和控制系统的基本配置。正确的初始设置是确保加工精度和机床安全运行的前提。

2401_87715305的博客 841

3.1 快速启动Flink集群

在本实战中,我们将快速启动Apache Flink 1.13.0集群,并在Hadoop集群环境中提交作业。首先,我们会在本地下载Flink安装包并上传至云主机,解压并配置环境变量。接着,我们将启动Flink集群,通过访问Web UI进行监控管理。然后,我们会配置集群,将Flink分发到从节点,并在集群上提交作业。最后,我们将通过命令行提交作业,并在Web UI上查看任务节点的输出结果。这个过程涵盖了Flink集群的部署、配置和作业提交,为大数据处理提供了一个完整的实战经验。

howard2005的专栏 727

Delphi五种设计模式

<br />今天抽空浏览了一下Delphi写的设计模式,网页在如下位置:<br />http://www.delphi-jedi.org/art_patterns.html<br />今天再看。仍然有种感觉。我把Observer模式的代码补充到下面。在Delphi 7已经编译通过。Lazarus应该也没有问题。<br />unit Unit2;<br />interface<br />type<br />TObservable = class;<br />TObserver = class;<br />TO

astra_zhao的专栏 2352

【React】1、React入门与概览(JSX语法)

React入门 文章目录React入门一、React全家桶1. React是什么?2. 谁开发的?3. 为什么要学?4. React的特点5. 学习React之前要掌握的JavaScript基础知识二、React 概览组件JSXVirtual DOM关于虚拟DOM:Data Flow三、React基本使用相关js库四、React JSXJSX 语法规则五、模块与组件、模块化与组件化的理解5.1 模块5.2 组件5.4 模块化5.5 组件化 一、React全家桶 React基础 React-Router(R

Coding and studying 1379

【Pyhton4Delpi】学习笔记(二)安装验证篇

本文详细介绍了P4D的安装、验证,包含全部源代码和python38的运行环境

sensor_WU 博客 3919

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---命令模式之SimpleRemoteControlTest [转]...

//命令的接受者 unit uReceiveObject; interface type TLight = class(TObject) public procedure Open; procedure Off; end; TGarageDoor = class(TObject) public procedure Up; procedure Down...

weixin_30872789的博客 135

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

电子书下载:Delphi模式编程

下载:http://www.400gb.com/file/54681303

编程小战 2876

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 设计模式、用Delphi描述-->Factory Method模式
下一篇: 设计模式、用Delphi描述-->Visitor模式
programlover
博客等级 码龄26年 1粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值