DOM概念內涵
經過XMLDOM的研究,我們可以歸納出DOM的一些基本的編程特性:
所有的文檔對象類 型都是從一個基礎類型派生的,文檔對象類型都在基礎類型上實現了各種特性。
每個 文檔對象都映射了文檔中某個片斷,修改文檔對象就等價於修改文檔片斷本身。
文檔 對象可以有子節點,由此構成一個多層次對象樹狀結構。
存在一個頂級對象,用來表 示整個文檔。可以宏觀控制整個文檔,也是應用程序訪問文檔對象樹狀結構的唯一入口。
文檔對象模型是可編程的,應用程序通過訪問文檔對象模型來訪問結構化文檔。
大部分類型的DOM可以將整個文檔結構保存到一個文件中,也可以從一個文件中再現 整個文檔結構。這算對象序列化。但也可能有例外。
我們可以發現,其他的DOM都基 本上實現了上述編程特性,比如名稱空間System.CodeDom支持下的CodeDom,Html DOM。
DOM概念外延
XMLDOM是嚴謹的DOM的編程特性,但我們在實際開發應用中,可 以根據各種需要進行簡化,開發各種不夠嚴謹的DOM。 比如在微軟.NET標准庫中,存在著許 多不嚴謹的DOM結構。比如名稱空間System.IO下的FileSystemInfo ,FileInfo, DirectoryInfo組成了文件系統DOM;名稱空間System.Reflection下的類型組成了以Assembly 為根節點的程序集DOM;名稱空間System.Windows.Forms下的類型組成了以Form為文檔對象, 以Control為基礎類型的WinFormDOM;名稱空間System.Web.UI及其子名稱空間下的類型組成 了以Page為文檔對象,以Control為基礎類型的ASP.Net頁面DOM。可以說,一般的對象樹狀結 構都可以看作不嚴謹的DOM結構。
我們學習了XMLDOM後,就可以模仿著設計自己的DOM ,在開源網站 http://sourceforge.Net 上,使用關鍵字 DOM 進行查找,會找出很多開源項 目,這些開源項目大多都和各種各樣的DOM有關系。
文檔就是數據,DOM處理文檔,實 際上就是處理數據,因此更進一步,我們開發開發各種應用系統中,都可以借鑒一下DOM的設 計思想,比如開發WinForm或ASP.Net中,這些用戶界面控件時也可以看作DOM。做電子病歷時 ,可以設計出電子病歷文檔對象模型,做客戶關系管理系統時,可以設計出客戶文檔對象模 型。總之做XX系統時,可以考慮設計出XX文檔對象模型。
小結
文檔對象模型 是一種比較復雜的軟件設計技術,但它功能強大,層次分明,邏輯清晰,好的文檔對象模型 合情合理,符合人們想當然的思想,是業務邏輯數據的高度抽象。大家應當好好學習,多多 研究學習學習,這對提高軟件設計能力,樹立自己的面向對象的編程思想都大有好處。