亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

利用VFI提高Delphi程序的重用性

2019-11-18 18:00:41
字體:
來源:轉載
供稿:網友
 

利用VFI提高Delphi程序的重用性

摘要:程序重用性是軟件質量的重要指標之一,提高重用性對于減少程序潛在缺陷,提高程序開發效率,降低維護成本具有重要的影響。本文針對Delphi所提供的VFI,給出了具體應用VFI來提高程序重用性的實例。該實例表明,使用VFI可以極大地簡化程序代碼,并保持界面的一致性,提高程序開發效率。
關鍵詞:重用性、Delphi、VFI

1 引言
       軟件重用(Software Reuse)已經深入人心,早在1968年的NATO軟件工程會議上就已經提出可復用庫的思想。軟件重用,又稱軟件復用或軟件再用,它的定義也很多,比較權威和通用的一種是:軟件重用是利用事先建立好的軟件部產品創建新軟件系統的過程。這個定義蘊含著軟件重用所必須包含的兩個方面:
       1.系統地開發可重用的軟件部產品。這些軟部品可以是代碼,但不應該僅僅局限在代碼,還可以是分析,設計,測試數據,原型,計劃,文檔,模板,框架等等。
       2.系統地使用這些軟部品作為構筑模塊,來建立新的系統。
軟件重用可以帶來很多好處,如提高軟件生成率,縮短開發周期,降低軟件開發和維護費用,生產更加標準化的軟件,提高軟件開發質量,增強軟件系統的互操作性等。
       在面向對象技術成為當今軟件開發的主流技術的今天,軟件復用更是提高到了一個重要的位置。復用性是面向對象的一個目標,同時,從另一方面來說,面向對象技術為軟件復用提供了更好的手段。它將軟件復用的層次從常見的源代碼復用、庫函數復用等較為低層次的復用提高到類的復用,構件的復用,以至于是架構、框架的復用。

2 Delphi中的VFI
          Delphi作為一種支持面向對象的開發工具,采用Object Pascal作為其語言,并提供了可視化的開發環境,極大地提高了軟件開發的效率。
        與常見的RAD工具(如Visual Basic、C++ Builder和Power Builder等)相同,Delphi提供了窗體設計器。而Delphi的窗體設計器的與眾不同之處在于,Delphi是建立在一個真正面向對象的框架結構基礎之上的,對基類所做的改變都將會傳遞給所有的派生類,它所采用的關鍵技術就是VFI(Visual Form Inheritance),即可視化窗體繼承。VFI技術使開發人員能夠動態地繼承當前項目或對象庫中的任何其他窗體,一旦基窗體發生改變,派生的窗體會立即更新。
        窗體繼承早在Delphi 5中就成為一個內置功能。要基于一個已有的窗體創建一個新的窗體,只要使用File | New菜單命令,Delphi將打開New Items對話框。這個對話框列出了對象庫中的所有對象。翻到Forms頁,這里列出了所有已經加到對象庫中的窗體;也可以選擇PRoject頁,來選擇一個本項目中已有的窗體。
        有三個選項用于把窗體加到項目中:Copy、Inherit和Use。如果選擇Copy,則意味著把所選窗體的副本加到當前項目中。如果對象庫中的窗體發生變化,不會影響到當前項目中的副本。如果選擇Inherit,則意味著從所選窗體派生出一個新的窗體加到當前項目中。如果對象庫中的窗體發生變化,則派生的窗體也會跟著變化。如果選擇Use,則意味著所選的窗體直接加到當前項目中,就好像這個窗體是當前項目創建的一樣。以Inherit方式使用窗體即采用了可視化繼承——VFI。


3 應用實例
        下面以一個實例對VFI的應用進行說明。在一MIS中,需要對多個數據庫中的表格進行統計,為了獲得較好的顯示效果,采用了dxDBGrid控件作為顯示數據結果的主要控件,并使其在統計界面中記住每次退出時的字段的位置,字段列標題的寬度等信息,因此,對每一個統計界面都提供一個窗體來實現。
        為實現此要求,通常的做法是對每一個統計窗體進行如下設置:(為方便說明,下面各個組件的名稱均采用了默認的名稱)
        1.新建窗體(為每一個統計界面提供一個窗體類);
        2.放置需要的組件(放置dxDBGrid、wwDBNavigator、OpenDialog等組件);
        3.設置組件屬性(調整各個字段的可見性、顯示寬度等);這些工作又可以細分為兩類:
           3.1:對所有窗體中的組件的一樣的設置,如DataSource1的DataSet屬性,dxDBGrid1與wwDBNavigator1、wwFilterDialog1的DataSource屬性等;
           3.2:各個窗體中設置不同的工作,典型的操作是設置DataSet1的數據來源,dxDBGrid1中Column的屬性。
        4.設置窗體及其他組件的事件屬性(如在窗體打開事件中打開數據集,在窗體關閉事件中關閉數據集,在導出事件中完成dxDBGrid數據的導出)。
窗體中主要的組件如下圖所示:

[發表時發現,沒有該圖也可以,所以省略了]

        在這一過程中,有些工作是要求不同的,比如工作1、工作3;但有些工作是重復性的,工作2、工作4,在這種情況下,多個統計窗體之間,會出現很多代碼的剪切、拷貝工作,既容易出現錯誤,在以后需要修改程序的時候,又不容易進行完全的、徹底的修改。比如,實現導出dxDBGrid1中數據的代碼,就會可能出現在多個窗體中。雖然將導出數據的功能封裝成函數可以在一定程度上,在各個統計窗體中進行調用的方法,可以減少這類重復性代碼。但是對于組件屬性的設置,及大部分事件的判斷,如PopupMenu彈出事件中對是否進行“導出選定數據”可用性的判斷,則必須要在每個窗體中出現。(雖然,可以在程序中設置一個通用的OnPopup事件處理,但是需要保證“導出選定數據”的菜單項具有相同的名字,或者在程序中進行判斷,仍然少不了重復的工作,并且也容易出錯,或者忘記設置菜單項的屬性)。
        而如果采用VFI,這些重復性的工作都可以解決??梢詾檫@些統計設置一個父窗體(類名稱為TFormBaseTongji),窗體如下所示:

[發表時發現,沒有該圖也可以,所以省略了]        

         所有的重復性的工作,如工作2、工作3.1,工作4都在父窗體中完成。如OnFormShow中設置代碼:AdoDataSet1.Open;。
        之后,各個具體的子窗體從該窗體繼承而來,在子窗體中進行的設置只需要工作3.2。這樣所進行的操作,將極大地減少工作量。不僅如此,使用VFI,還可以保持各個窗體之間的一致性,使之具有相似的外觀,從而保證軟件界面的一致性。由于重復工作的消除,也給軟件維護帶來了很大的好處,比如,如果要再增加一個公用功能,或者調整界面的細節,都可以在父窗體類中實現,子窗體中不再做任何工作;同時,VFI還允許子窗體,增加自己的功能,改變父窗體中的行為(即實現多態)??梢哉f,VFI為可視化開發提供了一個強有力的支持。


4 結束語
         在重用性顯得日益重要的今天,VFI為進行可視化的面向對象的開發提供了可能,有效地使用VFI,可以極大地改進程序重用性,改善程序的一致性,降低維護的成本。


上一篇:后臺調用外部程序的完美實現(Delphi)

下一篇:DELPHI加注冊表自啟動的最簡單代碼

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产电影| 日韩av影视在线| 黄色精品在线看| 亚洲二区中文字幕| 97精品视频在线观看| 国产成人综合精品| 韩国v欧美v日本v亚洲| 久久久国产精品亚洲一区| 成人亚洲欧美一区二区三区| 97免费中文视频在线观看| 亚洲欧美综合精品久久成人| 亚洲精品美女久久久久| 川上优av一区二区线观看| 成人黄色片在线| 亚洲欧美成人精品| 成人激情在线播放| 久久久久久久久久av| 久久精品中文字幕免费mv| 欧洲成人在线视频| 欧美三级免费观看| 国产一区二区三区三区在线观看| 国产亚洲精品激情久久| 国模gogo一区二区大胆私拍| 成人a级免费视频| 中文欧美日本在线资源| 亚洲人成网站色ww在线| 亚洲精品v欧美精品v日韩精品| 九九久久久久99精品| 姬川优奈aav一区二区| 成人欧美在线视频| 青青草原成人在线视频| 久久五月天综合| 欧美亚洲日本网站| 亚洲欧洲免费视频| 国产精品爽黄69天堂a| 亚洲图片在区色| 亚洲国产成人精品久久久国产成人一区| 欧美激情精品久久久久久| 在线观看久久久久久| 狠狠躁夜夜躁人人爽天天天天97| 中文字幕少妇一区二区三区| 欧洲精品毛片网站| 国产精品久久久999| 日本午夜在线亚洲.国产| 欧美极品少妇xxxxⅹ喷水| 亚洲综合成人婷婷小说| 日韩亚洲欧美成人| 日韩免费观看高清| 欧美一区二区三区艳史| 欧美福利视频在线| 欧美亚洲另类激情另类| 久久艳片www.17c.com| 亚洲aaaaaa| 欧美猛男性生活免费| 国产999精品| 亚洲国产精彩中文乱码av在线播放| 中文字幕一区二区三区电影| 日韩在线观看免费高清完整版| 亚洲v日韩v综合v精品v| 中文字幕不卡av| 亚洲欧美另类在线观看| 成人精品一区二区三区电影黑人| 国产精品大片wwwwww| 久久人人爽国产| 亚洲自拍在线观看| 亚洲成人黄色网址| 亚洲日韩中文字幕在线播放| 亚洲一区二区久久| 亚洲大胆人体视频| 成人免费黄色网| 国产精品久久久久久久久久东京| 最近2019中文字幕大全第二页| 国产精品九九九| 欧美做受高潮1| 国产精品一区=区| 国产日产亚洲精品| 日韩视频欧美视频| 亚洲美女视频网| 亚洲国产成人在线视频| 国产激情视频一区| 日韩欧美在线视频日韩欧美在线视频| 亚洲全黄一级网站| 久久精品国产亚洲一区二区| 国产精品网红福利| 国产精品一区二区久久久| 日韩免费精品视频| 91久久在线视频| 欧美一区二区.| 成人激情视频小说免费下载| 亚洲最大av网| 亚洲综合中文字幕在线| 色与欲影视天天看综合网| 91亚洲永久免费精品| 96sao精品视频在线观看| 久久躁狠狠躁夜夜爽| 亚洲欧美国产高清va在线播| 91九色综合久久| 欧美日韩福利视频| 亚洲国内高清视频| 国产精品户外野外| 国产视频精品xxxx| 国产一区二区三区久久精品| 国产精品成人国产乱一区| 亚洲欧美日韩精品久久奇米色影视| 一本色道久久综合狠狠躁篇怎么玩| 日本91av在线播放| 日韩电影免费观看中文字幕| 2023亚洲男人天堂| 欧美激情中文字幕乱码免费| 精品一区二区亚洲| 亚洲欧美日韩一区在线| 成人中心免费视频| 欧美在线www| 热久久这里只有精品| 日韩av一卡二卡| 这里只有视频精品| 亚洲美女性生活视频| 欧美日韩中文字幕综合视频| 在线看日韩欧美| 精品呦交小u女在线| 国产成人精彩在线视频九色| 欧美日韩ab片| 国产精品视频白浆免费视频| 日韩毛片在线看| 自拍视频国产精品| 欧美片一区二区三区| 亚洲曰本av电影| 国产精品久久久久影院日本| 久久久久国产精品免费网站| 国产在线精品成人一区二区三区| 亚洲电影中文字幕| 国产精品美女久久久久av超清| 亚洲欧美日韩区| 国产精品成人一区二区三区吃奶| 亚洲综合自拍一区| 亚洲一区中文字幕在线观看| 欧美激情一区二区三区高清视频| 美女视频久久黄| 国产一区视频在线播放| www国产91| 欧美精品电影免费在线观看| 久久人人爽人人爽爽久久| 国产成人在线精品| 91免费在线视频网站| 中文字幕亚洲色图| 精品亚洲国产成av人片传媒| 欧美黄色片在线观看| 亚洲第一综合天堂另类专| 久久久国产91| 亚洲自拍欧美色图| 国产精品成熟老女人| 欧美在线欧美在线| 久久久久久综合网天天| 久久久久这里只有精品| 超碰精品一区二区三区乱码| 欧美高清不卡在线| 欧美成aaa人片在线观看蜜臀| 亚洲人成网站在线播| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品视频网址| 欧美美女操人视频| 久久精品99久久久香蕉| 日韩av色综合| 欧美性猛交xxxx富婆弯腰|