华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:編程開發(fā) > DotNET > Delphi.Net > 文章內(nèi)容
  

Delphi基礎(chǔ)教程:Delphi程序開發(fā)特點(diǎn)分析

 [ 2017年9月5日 ] 【

  1.引言

  我們經(jīng)常會(huì)問這樣的問題“:到底什么使得Delphi如此優(yōu)秀?”和“為什么和別的編程工具相比,我更愿意選擇Delphi?”等等。簡而言之就是:高效性。決定一個(gè)軟件開發(fā)工具效率的因素歸結(jié)為以下五點(diǎn):①可視化開發(fā)環(huán)境的性能。②編譯器的速度和已編譯代碼的效率。③編程語言的功能及其復(fù)雜性。④數(shù)據(jù)庫結(jié)構(gòu)的靈活性和可擴(kuò)展性。⑤框架對(duì)設(shè)計(jì)和使用模式的擴(kuò)充。

  2.Del phi的特點(diǎn)

  2.1可視化集成開發(fā)環(huán)境

  可視化開發(fā)環(huán)境通常分為三個(gè)組成部分:編輯器、調(diào)試器和窗體設(shè)計(jì)器。和大多數(shù)現(xiàn)代RAD(快速應(yīng)用開發(fā))工具一樣,這三部分是協(xié)同工作的。當(dāng)你在窗體設(shè)計(jì)器中工作時(shí),Delphi在后臺(tái)自動(dòng)為你正在窗體中操縱的控件生成代碼。你還可以自己在編輯器中加入代碼來定義應(yīng)用程序的行為,同時(shí)還可以在同一個(gè)編輯器中通過設(shè)置斷點(diǎn)和監(jiān)控點(diǎn)等來調(diào)試程序。

  在版本5里,Delphi的調(diào)試器具備了許多先進(jìn)的功能,如遠(yuǎn)程調(diào)試、過程關(guān)聯(lián)、DL斷口包調(diào)試、自動(dòng)本地監(jiān)控以及CPU窗口等。Delphi還支持在調(diào)試時(shí)隨意放置和停靠窗口并把這一狀態(tài)保存為命令的桌面設(shè)置。由此,Delphi的IDE實(shí)現(xiàn)了對(duì)調(diào)試功能的良好支持。對(duì)RAD工具(如Delphi、Visual Basic、C++Builder和PowerBuilder等)來說,窗體設(shè)計(jì)器是一項(xiàng)獨(dú)特的功能。一些更為經(jīng)典的開發(fā)環(huán)境,如VC++和BC++,都提供了對(duì)話編輯器,但卻沒有將窗體設(shè)計(jì)器集成到開發(fā)流程中,沒有窗體設(shè)計(jì)器將會(huì)降低開發(fā)工具的整體效率。幾年來,Delphi與Visual Basic在完善窗體設(shè)計(jì)器的功能方面展開了激烈的競爭。Delphi的窗體設(shè)計(jì)器的與眾不同之處在于,Delphi是建立在一個(gè)真正面向?qū)ο蟮目蚣芙Y(jié)構(gòu)基礎(chǔ)之上的。這樣,你對(duì)基類所做的改變都將會(huì)傳遞給所有的派生類。這里涉及的一項(xiàng)關(guān)鍵技術(shù)就是VFI(visual form inheritance),即可視化窗體繼承。VFI技術(shù)使你能夠動(dòng)態(tài)地繼承當(dāng)前項(xiàng)目或?qū)ο髱熘械娜魏纹渌绑w。一旦基窗體發(fā)生改變,派生的窗體會(huì)立即予以更新。

  2.2編譯器的速度和已編譯代碼的效率

  Pascal編譯器最著名的特點(diǎn)就是速度快,而Delphi正是建立在這種編譯器的基礎(chǔ)之上的。事實(shí)上,它可能是針對(duì)windows的最快的高級(jí)語言本地代碼編譯器。以往速度很慢的C++編譯器在近年來取得了很大的進(jìn)步,增加了鏈接和各種緩存策略,尤其是在VISua1C++和C++Builder中。但即便如此,C++的編譯器還是比Delphi的慢了幾倍。Delphi和C++Builder共享同一種編譯器后端,是一個(gè)公司的產(chǎn)品,因此生成的代碼等效于由一個(gè)優(yōu)秀的C++編譯器生成的代碼。

  2.3編程語言的功能及其復(fù)雜性

  C++是非強(qiáng)類型語言,有些錯(cuò)誤編譯器無法發(fā)現(xiàn)。Object Pascal和Java很相似,它們很好地把握住了復(fù)雜性和功能性的平衡。它們都采取了這樣一種途徑,即限制其可用功能以加強(qiáng)開發(fā)者的邏輯設(shè)計(jì)。例如,兩者都避免了完全面向?qū)ο蟮珔s容易被濫用的多重繼承的觀念,而是實(shí)現(xiàn)了一個(gè)執(zhí)行多重接口功能的類。兩者都不支持美觀卻危險(xiǎn)的操作符加載。兩者都有一些強(qiáng)大的功能,諸如異常處理、運(yùn)行期類型信息(RTT工)和生存期內(nèi)存自管理字符串。特別是運(yùn)行期類型信息(RTTI),對(duì)我們?cè)O(shè)計(jì)仿真培訓(xùn)系統(tǒng)中的操作站與現(xiàn)場站很重要,用它我們可根據(jù)組態(tài)數(shù)據(jù)庫的數(shù)據(jù)在運(yùn)行期自動(dòng)創(chuàng)建組件和自動(dòng)識(shí)別組件而賦給相應(yīng)的數(shù)據(jù)。同時(shí),Delphi使用編程語言是Object Pascal,是面對(duì)對(duì)象、強(qiáng)類型語言。有利編制穩(wěn)健的應(yīng)用程序,減少調(diào)試、檢錯(cuò)時(shí)間以提高開發(fā)效率;有利描述真實(shí)世界的事物和系統(tǒng),如控制系統(tǒng)、工藝數(shù)學(xué)模型。

  2.4數(shù)據(jù)庫結(jié)構(gòu)的靈活性和可擴(kuò)展性

  由于Borland缺少一種數(shù)據(jù)庫計(jì)劃,因此Delphi保留了我們認(rèn)為是所有工具中最靈活的數(shù)據(jù)庫結(jié)構(gòu)。對(duì)大多數(shù)基于本地、客戶服務(wù)器和ODBC數(shù)據(jù)庫平臺(tái)的應(yīng)用程序來說,BDE的功能都非常強(qiáng)大。如果你對(duì)此不滿意,可以避開使用BDE以支持新的本地ADO組件。如果你沒有裝ADO,可以自己創(chuàng)建數(shù)據(jù)訪問類或者購買第三方數(shù)據(jù)訪問解決方案。此外,MIDAS使對(duì)數(shù)據(jù)源的多層訪問更易于實(shí)現(xiàn)。而Microsoft的工具(ODBC、OLEDB或者其他)從邏輯上來說趨向于支持Mi-crosoft自己的數(shù)據(jù)庫和數(shù)據(jù)訪問解決方案。

  2.5框架對(duì)設(shè)計(jì)和使用模式的擴(kuò)充

  這是一項(xiàng)經(jīng)常被其他軟件設(shè)計(jì)工具忽略了的重要功能。VCL是Delphi最重要的組成部分。在設(shè)計(jì)時(shí)操縱組件、創(chuàng)建組件、使用面向?qū)ο蠹夹g(shù)繼承其他組件的行為,這些能力都是決定Delphi效率的關(guān)鍵因素。在許多場合,編寫VCL組件都采用固定的00設(shè)計(jì)方法。相比之下,其它基于組件的框架經(jīng)常過于死板或過于復(fù)雜。比如ActiveX控件具有和VCL控件相同的設(shè)計(jì)期性能,但卻不能被繼承以創(chuàng)建一個(gè)具有其他不同行為的新類。傳統(tǒng)的類框架,如OWL和MFC,需要你有大量的內(nèi)部結(jié)構(gòu)知識(shí),而且如果沒有RAD工具的設(shè)計(jì)期支持,其功能將會(huì)受到抑制。

  3.Del phi的事件驅(qū)動(dòng)機(jī)制

  3.1無約定編程

  與傳統(tǒng)的Windows消息機(jī)制相比,Delphi的事件處理機(jī)制的最大優(yōu)勢在于所有的事件都是無約定的。對(duì)程序員而言,無約定就是指可以在事件處理程序中什么都不干。而在傳統(tǒng)的Windows消息機(jī)制中,就不得不調(diào)用基類的消息處理程序,還要把信息回傳給Windows。當(dāng)然,Delphi的事件處理機(jī)制的無約定的編程方式可能無法對(duì)消息進(jìn)行直接的靈活有效的處理,你要受制于誰引發(fā)了這一事件以及應(yīng)用程序?qū)@一事件要做出什么響應(yīng)等。例如,可以在OnKeyPress處理程序中修改和取消擊鍵,但onResize事件處理程序卻只能提供這一事件已發(fā)生的通知而無法進(jìn)一步防止或控制尺寸的改變。

首頁 1 2 尾頁
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
恭城| 麻栗坡县| 山阴县| 六枝特区| 通州区| 西丰县| 嘉禾县| 湛江市| 新乡县| 伊通| 名山县| 南昌县| 铜川市| 邳州市| 汽车| 沙坪坝区| 惠安县| 德保县| 收藏| 通辽市| 灌云县| 尉氏县| 齐河县| 郧西县| 金阳县| 大化| 南开区| 阿尔山市| 新安县| 禹州市| 大悟县| 泰宁县| 通许县| 桐城市| 达日县| 遂溪县| 佛坪县| 广丰县| 西昌市| 修水县| 梁平县|