摘要:物件導向(OOP)工藝的極致表現-LINQ
標題是我對 LINQ 這門技術的感想,上一篇相關文章裡面,網友呆呆提到了目前一般人對LINQ在SQL這一方面的看法,今天,這篇文章從另外一個角度來談談 LINQ 這門技術。
如 果你曾經或是現在是一名Java工程師,可能都聽過或是看過「Thinking in Java」這本書,這是一本非常有名的Java電腦書,它出名的原因,除了內容不錯之外,在於它將整本書的內容直接丟到網路上免費下載(當然你也可以買紙 本印刷的實體書),你可以在以下的網址找到這本書:
http://www.mindview.net/Books/TIJ/
「Thinking in Java」的第二章叫作「Everything is an Object」,點出了Java這門語言成功的最重要關鍵,無所不在的物件。當然,今天不是要來談這本書,只是用它來作個引言,Java的成功,催生 了.NET平台,這一點,相信沒有人敢否認,而Java為什麼成功,主要在於其將 OO 的特性發揮到了一個極致,學過Java的開發人員,應該都不會否認這一點。
現在回到.NET,可以想見的,有了Java,.NET在物件 導向的實作上面,絕對只有過之而無不及,Java已經作到「Everything is an Object」,只要是 Java 的東西,全部都以物件來處理,但是Java之外呢,當然就不關Java的事了。對於 .NET 而言,本身的物件化已經是基本,全方位的物件化才是終極目標,從這個方向出發,LINQ 於是便應運而生了,在此之前,你無法想像,如何以物件的方式,去存取資料庫,將資料表欄位,當作屬性作處理(具型別資料集可以作到這一點,但是僅只如此而 已),你甚至可以針對單一欄位的內容,執行更精細的運算,拆解欄位內容資料,萃取切割分解某個欄位所儲存的字串內容,或是將各種不同型態的資料來源,例如 檔案系統、XML與關聯式資料,全部混在一起作處理,而且只用一種語法就能搞定。
當一切都物件化了,開發人員不需要為了處理不同型態的資料來源使用不同的技術,所要作的只是建立物件,叫用方法,透過屬性的設定,完成資料存取,就如同撰寫C#或是VB.NET程式碼,完全沒有兩樣。
統 一的語法只是其次,全方位的的物件化才是真正的重點,一致的語法只是物件化的必然,物件導向設計理論的應用發展,因為 LINQ 的出現推升至更高的層次,.NET的開發人員於 .NET3.5 釋出之際,或許真的應該好好思考,是否儘快擁抱 LINQ 這門全新的資料存取技術。