程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi ListView快速操作通用實現之實現篇

Delphi ListView快速操作通用實現之實現篇

編輯:Delphi

眾所周知,Delphi ListView類直接進行Add、Update、Delete操作的速度是比較慢的,尤其是當數據量較 大時,比如數據量達到5000、10000、50000時,速度真是可以說是“慢得驚人”。其實快速操作的方法非常簡 單,就當大家都知道了。在本人的工作中,很多項目都用到ListView,並且對速度的響應要求比較高,於是發 生了快速操作ListView的代碼散布於多個項目大量模塊中的問題,並且,當界面層數據顯示要求發生改變時, 自然發生“重復性代碼的通用問題”。考慮到對以前版本的兼容性問題,也一直沒有引用第三方的成熟組件。 鑒於:“程序中的重復代碼最易引發問題,必須消除”的實踐經驗,自己設計了一個比較通用的解決此類問題 的類結構。當然,遠不是什麼“通用框架”了(眼下市面上很多人喜歡把自己做的無論什麼東西通稱為框架)。 在采用此結構的項目中,很容易實現MVC模式,達到業務邏輯與界面顯示分離的低級的、基礎的要求。

小結:

應用此類結構實現ListView快速數據操作的優勢:

1、可以快速實現MVC模式,達到界面 顯示與業務邏輯的分離。在Controllor類中,實例化數據顯示子類,調用相應方法即可實現顯示數據的增、刪 、改。

2、與原始的快速方法相比,封裝了內存數據List,大大簡化了List對象的操作(尤其是當有很 多相同或者類似數據要求在不同Form的ListView中顯示時),並減少了List的創建、數據操作、釋放等操作時 發生錯誤的可能性。

3、簡化了多個相同、類似數據顯示的控制代碼,針對每個份要顯示的數據及 ListView,只需要實例化一個顯示子類,避免了直接應用原始的快速方法時,控制代碼分散在每一個具體Form 類中的問題。

4、對顯示數據的業務信息份進行了集中,當要求顯示的信息發生變化時,只需在數據顯 示子類這一個類中更改即可。

此通用類結構仍有些不足之處,歡迎有興趣的朋友繼續完善:

1 、每個應用層類的外部調用方式非常類似(請參考開發的示例源碼),表明,有些通用的方法沒有進行更好的抽 象。

2、快速訪問基類對其子類的行為抽象不充分,導致子類的應用層調用代碼非常類似。當初這樣 設計的目的是想保持類結構有充分的可擴展性。其實完全可以將基類進行改良:將抽象的虛方法更換成接口, 這樣,基類實現的更好的封裝,並且更好地滿足了“向穩定的方向依賴”和“針對接口編程”的設計原則。這 樣,應用層還是要實例化一個自己業務需要的類來實現此接口。但Delphi的接口用起來不像是真正的接口,通 常要從TInterfacedObject等類繼承,大大限制了類結構層次的演化。(因為在不支持多繼承的語言環境中,如 果還想增加更高層次的抽象就不那麼容易了)。

3、當前的版本還沒有提供針對某列進行數據排序的功 能。

源碼如下:

//---------------------------------------------------------------

---------------   
       
//   
       
//      產品名稱:   成曉旭的個人軟件Delphi源碼庫   
       
//      產品版本:   CXXSoft delphi code source lib 1.0   
       
//      模塊名稱:   Delphi之ListView顯示控制類---應用層:Soft socket類定義單元   
       
//      模塊描述:   
       
//      單元文件:   unLVSoftSocket.pas-->unLVQuickSocket.pas   
       
//      開發作者:   成曉旭   
       
//      備注:       任何人使用此文件時,請保留此段自述文件,謝謝!   
       
//      開發
		
							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved