Delphi程序开发特点分析 |
1.引言 我们 时常会问这样的问题“:到底什么使得Delphi如此优异?”和“为何和别的编程工具相比,我更情愿 取舍Delphi?”等等 。简而言之便是:高效性 。决定一个软件开发工具效率的因素 概括为以下五点:①可视化开发环境的性能 。②编译器的速度和已编译代码的效率 。③编程语言的 性能及其复杂性 。④数据库 构造的灵便性和可 扩大性 。⑤框架对设计和 使用模式的扩充 。 2.Del phi的特色 2.1可视化集成开发环境 可视化开发环境通常分为三个构成 部分:编辑器、调试器和窗体设计器 。和大多数现代RAD( 快捷 利用开发)工具一样,这三 部分是协同工作的 。当你在窗体设计器中工作时,Delphi在 后盾自动为你正在窗体中控制的控件生成代码 。你还 可以自己在编辑器中加入代码来定义 利用程序的行为,同时还 可以在同一个编辑器中通过设置断点和监控点等来调试程序 。 在版本5里,Delphi的调试 器具备了许多先进的 性能,如远程调试、过程关联、DL断口包调试、自动当地监控以及CPU窗口等 。Delphi还 支撑在调试时 随便 搁置和 停泊窗口并把这一状态 保留为命令的桌面设置 。由此,Delphi的IDE实现了对调试 性能的良好 支撑 。对RAD工具(如Delphi、Visual Basic、C++Builder和PowerBuilder等)来说,窗体设计器是一项独特的 性能 。一些更为经典的开发环境,如VC++和BC++,都提供了对话编辑器,但却没有将窗体设计器集成到开发流程中,没有窗体设计器将会减低开发工具的整体效率 。几年来,Delphi与Visual Basic在完善窗体设计器的 性能方面铺开了 强烈的竞争 。Delphi的窗体设计器的异乎寻常之处在于,Delphi是 构建在一个真正面向对象的框架 构造 根底之上的 。这样,你对基类所做的转变都将会传递给全部的派生类 。这里 波及的一项 要害技术便是VFI(visual form inheritance),即可视化窗体继承 。VFI技术使你 可以动态地继 担目前 名目或对象库中的任何 其余窗体 。一旦基窗体 产生转变,派生的窗体味马上予以更新 。 2.2编译器的速度和已编译代码的效率 Pascal编译器最 驰名的特色便是速度快,而Delphi正是 构建在这种编译器的 根底之上的 。事实上,它可能是针对windows的最快的高级语言当地代码编译器 。以前速度很慢的C++编译器在近年来 获得了很大的 普及,添加了链接和各种缓存策略,尤其是在VISua1C++和C++Builder中 。但 即便如此,C++的编译器还是比Delphi的慢了几倍 。Delphi和C++Builder共享同一种编译器后端,是一个公司的产品, 因此生成的代码等效于由一个优异的C++编译器生成的代码 。 2.3编程语言的 性能及其复杂性 C++是非强类型语言,有些 舛误编译器 无奈发现 。Object Pascal和Java很 类似,它们很好地把握住了复杂性和 性能性的 均衡 。它们都采取了这样一种 路径,即 制约其可用 性能以 加强开发者的逻辑设计 。例如,两者都幸免了 彻底面向对象但却容易被滥用的多重继承的 观点,而是实现了一个执行多重接口 性能的类 。两者都不 支撑 好看却惊险的操作符加载 。两者都有一些 壮大的 性能,诸如 异样 解决、运行期类型信息(RTT工)和生存期内存自治理字符串 。特殊是运行期类型信息(RTTI),对我们设计仿真培训系统中的操作站与现场站很主要,用它我们可依据组态数据库的数据在运行期自动 缔造组件和自动 鉴别组件而赋给相应的数据 。同时,Delphi 使用编程语言是Object Pascal,是面对对象、强类型语言 。有利编制 稳重的 利用程序,削减调试、检错 工夫以 普及开发效率;有利 形容 实在世界的事物和系统,如控制系统、工艺数学模型 。 2.4数据库 构造的灵便性和可 扩大性 由于Borland 缺乏一种数据库 方案, 因此Delphi保留了我们认为是全部工具中最灵便的数据库 构造 。对大多数基于当地、客户服务器和ODBC数据库平台的 利用程序来说,BDE的 性能都十分 壮大 。假如你对此不中意, 可以避开 使用BDE以 支撑新的当地ADO组件 。假如你没有装ADO, 可以自己 缔造数据 拜访类或者购买第三方数据 拜访解决 方案 。此外,MIDAS使对数据源的多层 拜访更易于实现 。而Microsoft的工具(ODBC、OLEDB或者 其余)从逻辑上来说趋势于 支撑Mi-crosoft自己的数据库和数据 拜访解决 方案 。 2.5框架对设计和 使用模式的扩充 这是一项 时常被 其余软件设计工具 忽略了的主要 性能 。VCL是Delphi最主要的构成 部分 。在设计时控制组件、 缔造组件、 使用面向对象技术继承 其余组件的行为,这些 威力都是决定Delphi效率的 要害因素 。在许多场合,编写VCL组件都采纳固定的00设计 步骤 。相比之下,其它基于组件的框架 时常过于死板或过于复杂 。 比方ActiveX控件 存在和VCL控件 雷同的设计期性能,但却不能被继承以 缔造一个 存在 其余不同行为的新类 。传统的类框架,如OWL和MFC,需求你有大量的内部 构造 常识,并且假如没有RAD工具的设计期 支撑,其 性能将会受到 克制 。 3.Del phi的事件驱动机制 3.1无约定编程 与传统的Windows 信息机制相比,Delphi的事件 解决机制的最大优势在于全部的事件都是无约定的 。对程序员而言,无约定便是指 可以在事件 解决程序中什么都不干 。而在传统的Windows 信息机制中,就只能调用基类的 信息 解决程序,还要把信息回传给Windows 。固然,Delphi的事件 解决机制的无约定的编程 模式可能 无奈对 信息进行直接的灵便有效的 解决,你要受制于谁激发了这一事件以及 利用程序对这一事件要做出什么响应等 。例如, 可以在OnKeyPress 解决程序中 批改和 取缔击键,但onResize事件 解决程序却只能提供这一事件已 产生的 告诉而 无奈进一步 预防或控制尺寸的转变 。 不过,Delphi 依旧同意在事件 解决程序中直接 解决Windows 信息 。只不过这就不像事件 解决机制那么 容易,由于 信息 解决需求程序员对要 解决的 信息有 详尽了解 。 可以通过message这个 要害字 解决全部Windows 信息 。 使用Delphi开发 利用程序的 好处是,你既 可以用高级的、易于 了解的 模式来编程,也 可以在需求时直接 拜访低层的信息 。 3.2 Delphi的VCL 信息系统 全部的Delphi类有一个 解决 信息的内置机理,称之为 信息 解决 步骤或者Message handlers 。Message handlers的 根本 思维便是:类猎取一些 品种的 信息, 而后再 散发(dis-patch)它们,由响应的 解决函数或者过程进行 解决(调用哪一个 解决函数或过程取决于所 承受的 信息) 。关于一个特殊的 信息,假如没有一个指定的 步骤存在的话,则由一个缺省的 信息 解决 。 VCL定义了 信息 散发系统,该系统将全部的windows 信息(包括消费者定义的 信息)传递给相应的对象,由各对象的 信息 散发系统进行 解决 。VCL对象用于 接纳 信息的 步骤叫做MainWndProc() 。通过MainWndProc() 可以对 信息进行任何特殊的 解决 。不过,一般状况下很少直接调用MainWndProc()来 解决 信息,除非不想让 信息通过VCL的 信息系统 散发 。从MainWndProc()返回后, 信息被传递给对象的WndProc() 步骤,这便是该对象的窗体过程, 而后进入VCL的 散发机构 。 散发机构 使用Dispatch() 步骤把 信息 散发给一个 信息句柄 。 信息 到达该 信息的 解决句柄(Handler)后, 通过该句柄的 解决,这个 信息 解决过程就 完毕了 。没有必要转变这个 信息 散发机理,所要做的只不过产生一个 信息 解决 步骤或者句柄,即一个 信息 解决函数 。 3.3加快原型化 当对Delphi 使用了一段 工夫后, 即便你只不过一个Delphi新手,你也会发现,用Delphi编写第一个 名目就能马上获益:开发周期短、 利用程序 稳重 。设计消费者界面(UI)是许多windows程序员头疼的问题,而这恰好是Delphi的 长处 。消费者界面的设计和程序的布局被称为原型化 。在非可视化的开发环境中, 利用程序的原型化 时常比真正实现程序的 工夫还要长 。一个简洁直观、令人愉悦的消费者界面是 利用程序的一大 部分 。 Delphi 可以用它的自定义控件或自己开发的控件来 快捷 构建您需求的消费者界面 。当你能娴熟 使用窗口、控件和事件响应 步骤以后,将发现过去要花很大精力的原型化工作现在大大简化了 。同时,用Delphi开发的消费者界面一点不比用传统的开发工具 构建的消费者界面 出色 。在Delphi中你在设计期看到的一般便是最后的产品 。 4. 完毕语 综上所述,大家可发现Delphi 5 本身便是一个 性能十分 壮大的面向对象开发平台,它的可视组件库VCL(VisualComponent Library)是一个易学、易用、高效的可重用的软件对象,还包括有 丰硕的数据库 利用,通信组件 。Delphi 本身便是 使用VCL编写而成的;不只界面开发容易迅速,并且关于系统所带组件和自编组件的 使用就如同组态一样 。 惟独将组件 搁置在窗体中,用鼠标移动到你要求的位置,转变某些属性以满足你的要求 。 |