日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

技术贴]强大的DELPHI RTTI–兼谈需要了解多种开发语言

發(fā)布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术贴]强大的DELPHI RTTI–兼谈需要了解多种开发语言 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

技術(shù)貼]強大的DELPHI RTTI–兼談需要了解多種開發(fā)語言

一月 27th, 2005 by 猛禽

風焱在《“18般武藝”?》中說到他碰上的被多種語言糾纏的問題。我在回復里說:
?很多語言只要能看懂幾分就行了,沒必要每一種都精通
但是如果只會很少的一兩種語言也是不行的。

因為看了一些關(guān)于JAVA的反射技術(shù)的應用,忽然想到DELPHI的RTTI也很強,于是試著拿數(shù)據(jù)集下手,用RTTI來實現(xiàn)它的對象化。用了兩個
晚上時間就搞定了(要不是因為開始時搞錯對象–基類用了TObject,其實應該是用TPersistent才對),果然很簡單。

假設(shè)有一個ADODataSet控件,連接羅斯文數(shù)據(jù)庫,SQL為:

select * from Employee

現(xiàn)在要把它的內(nèi)容中EmployeeID, FirstName, LastName三個字段顯示到ListView里。我通過RTTI實現(xiàn)了一個數(shù)據(jù)集代理類,使得代碼得到大大的簡化(這兩天爭取把結(jié)果整理出來另外撰文說明)。其結(jié)果大致如下:

Type TPDSEmployee = class( TMProxyDataSet ) published Property EmployeeID : Integer Index 0 Read GetInteger Write SetInteger; Property FirstName : String Index 1 Read GetString Write SetString; Property LastName : String Index 2 Read GetString Write SetString; End; ... emp := TPDSEmployee.Create( ADODataSet1 ); While emp.ForEach Do With ListView1.Add Do Begin Caption := IntToStr( emp.EmployeeID ); SubItems.Add( emp.FirstName ); SubItems.Add( emp.LastName ); End; emp.Free;

對比傳統(tǒng)的實現(xiàn)代碼,好處是顯而易見的。

但是當我實現(xiàn)出這個TMProxyDataSet類后,不禁感到痛心疾首,這個我早在三年前就應該想到的。

三年前DELPHI6剛推出時,我就發(fā)現(xiàn)它的SOAP功能是通過DELPHI強大的RTTI來實現(xiàn)的,我為什么當時沒有想到去深入研究一下DELPHI的RTTI呢?

這次要不是因為看到了一些JAVA的資料,我可能還是想不到,所以多了解一些別的語言是很重要的事。特別是最近以來,動態(tài)語言越來受到關(guān)注,雖然它們在性能上不能跟原生開發(fā)相比,但在很多的開發(fā)思想上,具有重要的啟發(fā)意義。

在做了這個東東以后,我才意識到,DELPHI其實是所有原生開發(fā)語言中,動態(tài)性最高的,并不比基于虛擬機的JAVA和C#低多少。只是長期在做RAD的開發(fā),沒有體會到而已。程序員在RAD下被慣壞了。

做完這個,我打算下一步再試試用RTTI實現(xiàn)對象的XML持久化(基本上就是抄襲一下DELPHI本身的SOAP實現(xiàn)代碼-_-|||)。這個思路應該會比我原先用的XML Data Binding要方便很多,至少不用再去寫那個麻煩的XML Schema了。

BTW:以前沒有太關(guān)注RTTI,效率恐怕是其中最重要的一個原因,但是現(xiàn)在看來,跟虛擬機語言甚至動態(tài)語言相比,DELPHI作為原生應用開發(fā),這點RTTI效率損失其實根本沒有想像中那么大的影響。換來開發(fā)效率的大大提高還是很值得的。

BTW:抄了令狐的一段CSS(<pre>)。^O^

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的技术贴]强大的DELPHI RTTI–兼谈需要了解多种开发语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。