UIComponent顯示和邏輯分離的考慮
UIComponent,UI層組件,作為組件其最重要的就是接口的提供以及擴充性,同時作為UI層的組件,從UI層的職責來考慮就是UI的展示和交互兩個方面,在這兩個方面上UIComponent最需要考慮的就是顯示和邏輯的分離,避免邏輯造成對顯示的污染,顯示和邏輯的分離的好處就在于修改UI以及修改邏輯時都會更加的方便,不用去繁重的html代碼中尋找UI和邏輯。
UIComponent可以參考的有Tapestry、JSF等等這些東西,這些組件化的建設中個人覺得一個問題就在于造成了UI的修改變得很困難,因為UI都在代碼里控制了,也就是說沒有做到很好的UI顯示和邏輯的分離,這種組件化的好處感覺只在于對于開發人員的滿足,但對于集成UI這項占據巨大工作量的工作來說,仍然是很痛苦很麻煩的一件事。
目前正在做UIComponent這塊的工作,對于這塊的設計目前采用的是UIComponent由UIHtmlTemplate、UICssTemplate和UILogicTemplate共同組成,UIHtmlTemplate控制頁面的靜態元素顯示,UICssTemplate控制整個頁面的靜態以及動態元素的顯示形式,UILogicTemplate控制頁面動態元素的邏輯以及交互邏輯。整個UIComponent采取Template機制,采用的工具是Velocity,通過自定義Template所需要的context解析成html,UILogicTemplate中控制的為頁面動態元素的創建邏輯,如要創建一個表格、創建行等,對于這些創建的表格、行等動態元素的顯示形式的控制仍然通過css實現,與服務器的交互邏輯則通過ajax進行實現,UIComponent通過表現層引擎加載到頁面上下文中,這樣在頁面上下文中就可以直接以#tree等等這樣的方式來使用了。在這樣的一個設計中UI的顯示和邏輯算是做到了分離,不過現在出現的問題主要在于編寫一個UIComponent仍然不夠方便,需要對于js、css以及ajax都熟悉的人(或是這樣的幾個人,不過目前看下來覺得有oo基礎的人去學下這個東西還是很快的,很容易上手的三樣很強大的東西,^_^,這些天經常被js、css的強大而震驚,誰叫我是外行 ),不過在用的方面來說就比較好用了,整個系統的UI控制(風格等)以及交互方式都變得非常的清晰,UI集成的速度也大幅度提升,UI集成來講已經不像以前那樣的痛苦了。
UIComponent方面除了頁面常用的html相關元素外,最重要的還是象數據集式的控件(樹、表格、下拉列表、下拉樹、數據Grid等等)方面。
這里只是大概的對UIComponent進行一個陳述,如果大家有好的看法的話希望能加以指點......
ps: 個人覺得做UIComponent就和做別的一樣,最重要的是要把握其目的,應該說UIComponent的目的是為了讓開發人員在進行頁面集成工作時更加簡單,頁面的顯示和邏輯修改更加的方便,整體系統的風格更加的統一,另一方面就是提供出足夠的擴展和自定義機制。
posted on 2005-12-15 14:57 BlueDavy 閱讀(1359) 評論(0) 編輯 收藏 所屬分類: Java