版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
具有自適應能力的值對象研究
摘要在Web應用系統(tǒng)中,具有自適應能力的值對象將極大提高系統(tǒng)的開發(fā)效率和運行效率。本文主要講述了如何動態(tài)創(chuàng)建封裝值對象。關鍵詞VO(ValueObject)POSModel
值對象即值的對象,簡稱VO。一個值對象實際上是一個可序列化的java類,它封裝了客戶端和服務器端所需要交換的業(yè)務數據。通過使用值對象極大地減少系統(tǒng)中客戶端與服務器端間的網絡對話,加速層之間的數據交換,從而提高系統(tǒng)的性能。目前的值對象多采用java的反射機制在程序的運行期間創(chuàng)建和維護任何類的對象,而不提前對目標類進行硬編碼。Java語言的反射機制提供了一種非常通用的動態(tài)連接程序組件的方法。這種機制使得反射在創(chuàng)建與對象一同工作的類庫中的通用方法方面非常有用。但是反射有兩個缺點,一個是性能問題。在使用屬性字段和方法訪問的時候,反射要比直接的代碼訪問要慢很多。至于影響的程度,則依賴于在程序中怎樣使用反射。如果要在執(zhí)行應用程序的核心邏輯中使用反射,性能問題是一個嚴肅的問題。其次,使用反射可以使你的實際的代碼內部邏輯變得模糊不清。程序員都希望在源代碼中看到一個程序的邏輯以及象繞過源代碼的反射所可能產生的維護問題這樣的一些技術。反射代碼也比相應的直接代碼要復雜一些。此外編寫值對象也是一項枯燥乏味的工作。針對以上的問題,本文提出了一個基于元數據描述的值對象解決方案。通過該方案生成的值對象具有良好的自描述能力和自適應能力,通過定制元數據,用戶可以從乏味的值對象硬編碼工作中解脫出來;同時摒棄了Java的反射機制,提高了系統(tǒng)的性能,使程序的邏輯更加清晰。值對象作為一種客戶端和服務器端數據交換的載體,其所容納和傳輸的不外乎“屬性名/屬性值”對這樣的數據?;谏鲜鎏攸c,本文設計了POSModel類,該類作為所有值對象的基類,動態(tài)封裝“屬性名/屬性值”放入Map類型的變量,向外界提供統(tǒng)一的接口用于操縱業(yè)務對象的數據。其類圖如圖1所示圖1POSModel實現了Serializable接口,可以作為遠程方法調用(RomoteMethodInvoke,RMI)的參數在網絡上傳輸。由于POSModel可以容納任何類型的“屬性名/屬性值”,對這樣的數據,而與實體Bean無關,其所容納的數據也可以在系統(tǒng)運行時根據需要動態(tài)地改變,而不象JavaBean類值對象那樣由于需要封裝實體Bean的全部數據而導致不必要的數據傳輸,故而可以用它來做為客戶端和服務器端間一種通用、動態(tài)的數據交換載體,而無須再實現一個個具體的JavaBean,這就大大減少系統(tǒng)中的硬編碼工作量:因為根本就不需要為值對象提供任何的編碼實現,而且也提高了系統(tǒng)的可維護性。除此之外,POSModel類提供以下功能:u對字段屬性有效性的校驗u支持兩種類型的數據u把所有數字類型的數據都當作字符型來操作u用空字符代表nullu為在html頁面上顯示數據提供了htmlEncode方法,用于過濾掉特殊字符按照ORM理論,類和關系數據庫中的表對應,對象和表中的記錄對應,對象的屬性和表的字段對應。而POSModel類動態(tài)封裝了對象的“屬性名/屬性值”對數據,為此我們設計了一個xml文件用于建立對象到關系數據庫的映射,其Schema文件主要代碼?xmlversion=""encoding="utf-8"?xsd:schemaxmlns:xsd="http:///2001/XMLSchema"xsd:elementname="field"xsd:attributename="name"type="xsd:string"use="optional"/xsd:attributename="tabField"type="xsd:string"use="optional"/xsd:attributename="type"type="xsd:string"use="optional"http://xsd:elementxsd:elementname="fields"xsd:elementmaxOccurs="unbounded"minOccurs="1"ref="field"http://xsd:elementxsd:elementname="model"xsd:elementref="table"/xsd:elementref="fields"/
xsd:elementref="relations"/xsd:elementref="primaryKeys"http://xsd:elementxsd:elementname="posModels"xsd:elementref="model"http://xsd:element......../xsd:schema⑴用ModelXMLParse類解析XML映射文件,將每一個model節(jié)點封裝成TableModel對象,并把節(jié)點名作為鍵、TableModel對象作為值封裝到哈希表,放入緩存中。⑵業(yè)務對象發(fā)出創(chuàng)建POSModel類的實例請求時,根據對象名從緩存中找到對應的TableModel對象,創(chuàng)建具體POSModel類實例。相關實現類圖如圖2所示:圖2業(yè)務對象負責創(chuàng)建值對象,并根據請求將其傳送到相關的客戶端;業(yè)務對象也可以從用戶處獲取一個值對象格式的數據,并應用這些數據來執(zhí)行一些更新。用戶通過訪問業(yè)務對象,既得到了所需的信息,也對相關數據做出了一定的修改。用戶從業(yè)務對象的方法得到值對象時,可以直接調用值對象的成員方法進行本地數據訪問,當然這種本地數據訪問不會影響到業(yè)務對象。此過程的序列圖如圖3所示:圖3這一數據封裝模式已在某大型電子政務軟件中成功應用,系統(tǒng)所采用的體系結構Web應用框架在J2EE體系下的實現,也在多個大型的Web應用系統(tǒng)中取得成功。當然,這種數據封住模式在對關聯表的支持、增加圖形用戶界面方便XML文件的錄入方面還需作進一步的完善。本文所闡述的結構,具有以下幾個特點:l運行期間動態(tài)封裝值對象的結構。l利用良好的對象封裝技術,可以方便的實現對數據的各種操作。l對于數據結構并不固定的系統(tǒng),應用此結構,大大簡化了代碼維護的工作量。參
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026甘肅酒泉市玉門市招聘供熱人員15人參考題庫附答案
- 2026福建省面向東北林業(yè)大學選調生選拔工作考試備考題庫附答案
- 2026福建福州市羅源縣城市管理和綜合執(zhí)法局執(zhí)法輔助人員招聘參考題庫附答案
- 公共交通車輛安全駕駛操作制度
- 2026陜西省面向中南大學招錄選調生參考題庫附答案
- 2026青海班瑪縣面向社會招聘臨聘教師3人參考題庫附答案
- 中共玉山縣委社會工作部公開選調事業(yè)單位工作人員備考題庫附答案
- 中國汽研2026屆春招備考題庫附答案
- 南充市高坪區(qū)事業(yè)單位2025年公開考調工作人員的(6人)考試備考題庫附答案
- 瀘州市政府投資建設工程管理第一中心招聘編外聘用人員的備考題庫附答案
- 《電子商務師(三級)理論知識鑒定要素細目表》
- 中國補腎型保健品行業(yè)市場深度調查及發(fā)展前景研究預測報告
- 警察警械使用培訓課件
- PS基礎教學課件通道
- 中職團建活動方案
- 2025壓覆礦產資源調查評估規(guī)范
- 2024陸上風電項目造價指標
- DB31/T 360-2020住宅物業(yè)管理服務規(guī)范
- DBJ52T-既有建筑幕墻安全性檢測鑒定技術規(guī)程
- 英國文學課程說課
- 影片備案報告范文
評論
0/150
提交評論