Delphi程序开发特点 编译器 数据库结构 框架对设计

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:49 我要评论(0)

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事件处理程序却只能提供这一事件已发生的通知而无法进一步防止或控制尺寸的改变。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...