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

首頁 > 編程 > Delphi > 正文

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

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

利用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還允許子窗體,增加自己的功能,改變父窗體中的行為(即實現多態)。可以說,VFI為可視化開發提供了一個強有力的支持。


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



上一篇:模擬進程調度(delphi寫的)

下一篇:DELPHI基礎開發技巧

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

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品少妇xxxxⅹ免费视频| 国产精品美女呻吟| 欧美另类第一页| 国产美女搞久久| 国内精品400部情侣激情| 国产午夜精品美女视频明星a级| 国产精品久久久久久超碰| 高清视频欧美一级| 在线播放精品一区二区三区| 日本久久久久久| 在线视频一区二区| 久久精品99久久久香蕉| 亚洲最大激情中文字幕| 亚洲男人第一av网站| 青青久久aⅴ北条麻妃| 成人黄色在线观看| 日韩欧美国产视频| www.99久久热国产日韩欧美.com| 欧美精品激情在线观看| 日本亚洲欧美三级| 国产精品视频区1| 5566日本婷婷色中文字幕97| 欧美激情一级欧美精品| 日韩精品在线私人| 国产精品国产自产拍高清av水多| 亚洲成年网站在线观看| 亚洲电影免费观看高清完整版在线| www.久久草.com| 亚洲一区二区免费| 欧美午夜性色大片在线观看| 在线视频欧美日韩精品| 国产精品电影观看| 亚洲精品电影网站| 国产日韩一区在线| 亚洲视频777| 亚洲第一视频在线观看| 成人性教育视频在线观看| 中文字幕亚洲一区| 国产精品老女人视频| 亚洲精品视频中文字幕| 岛国视频午夜一区免费在线观看| 福利微拍一区二区| 亚洲成人黄色网| 国产精品免费电影| 国产一区二区三区在线播放免费观看| 日韩电影中文 亚洲精品乱码| 国产欧美日韩中文字幕| 庆余年2免费日韩剧观看大牛| 久久精品国产一区二区电影| 91欧美精品午夜性色福利在线| 日韩在线观看网址| 中文字幕在线看视频国产欧美在线看完整| 欧美成人精品一区| 久热精品视频在线| 色系列之999| 日韩欧美在线免费| 欧美精品久久久久久久免费观看| 欧美精品一二区| 国产亚洲免费的视频看| 国模吧一区二区三区| 欧美在线视频一二三| 成人黄色午夜影院| 欧美日韩国产第一页| 美日韩精品免费观看视频| 丰满岳妇乱一区二区三区| 国内精品中文字幕| 久久久久久com| 国产精品av在线| 性亚洲最疯狂xxxx高清| 欧美三级xxx| 久久精品国产96久久久香蕉| 欧美大学生性色视频| 日韩女优人人人人射在线视频| 日韩中文字幕网站| 成人激情在线播放| 麻豆一区二区在线观看| 欧美又大粗又爽又黄大片视频| 岛国精品视频在线播放| 欧美www视频在线观看| 91精品国产综合久久香蕉的用户体验| 精品久久久av| 亚洲a级在线播放观看| 久久九九精品99国产精品| 国产精品免费视频xxxx| 中文字幕欧美日韩在线| 97av在线视频| 亚洲精品综合久久中文字幕| 欧美激情一区二区久久久| 国产精品无码专区在线观看| 96sao精品视频在线观看| 国产偷亚洲偷欧美偷精品| 亚洲精品97久久| 欧美精品videosex牲欧美| 亚洲国产日韩欧美综合久久| 欧美性xxxxxxx| 国产精品色婷婷视频| 欧美成人亚洲成人| 青青草原成人在线视频| 国产精品av电影| 国产日韩在线看| 国产a∨精品一区二区三区不卡| 国产欧美精品久久久| 国产成人福利网站| 精品免费在线观看| 黑人巨大精品欧美一区二区一视频| 美乳少妇欧美精品| 精品中文字幕在线观看| 国产精品v日韩精品| 国产精品极品尤物在线观看| 国产精品久久色| 亚洲色图美腿丝袜| 欧美一级高清免费播放| 欧美麻豆久久久久久中文| 久久精品亚洲一区| 日韩视频在线观看免费| 欧美怡红院视频一区二区三区| 中国日韩欧美久久久久久久久| 久久精品久久精品亚洲人| 久久久精品视频在线观看| 久久久精品一区| 欧美精品www在线观看| 国产日韩欧美在线播放| 亚洲网站在线观看| 亚洲欧美日本另类| 欧美乱大交做爰xxxⅹ性3| 久久久国产一区二区三区| 亚洲第一综合天堂另类专| 日韩精品一区二区三区第95| 九九热99久久久国产盗摄| 国产精品亚洲网站| 欧美精品中文字幕一区| 91高清视频在线免费观看| 性金发美女69hd大尺寸| 欧美与黑人午夜性猛交久久久| 亚洲欧美激情视频| 国产91在线播放| 国内精品一区二区三区四区| 成人444kkkk在线观看| 91啪国产在线| 欧洲精品毛片网站| 亚洲电影中文字幕| 成人免费淫片视频软件| 亚洲最大的免费| 欧美黑人狂野猛交老妇| 日本国产精品视频| 88国产精品欧美一区二区三区| 亚洲男人天堂2019| 国产精品入口尤物| 国内精品小视频在线观看| 亚洲成人激情在线观看| 久久国产精品首页| 91免费精品国偷自产在线| 亚洲在线www| 亚洲片国产一区一级在线观看| 欧美成在线观看| 一区二区在线视频播放| 欧美成人自拍视频| 日韩欧美在线视频免费观看| 精品一区二区三区四区| 亚洲毛片在线观看| 亚洲美女av在线| 国产精品久久久久久久9999| 中文字幕精品网| 45www国产精品网站|