Apache Tiles 學習(一)、複合視圖模式

Apache Tiles 是什麼?

A free open-sourced templating framework for modern Java applications. html

Based upon the Composite pattern it is built to simplify the development of user interfaces. web

For complex web sites it remains the easiest and most elegant way to work alongside any MVC technology. apache

一個免費開源的模板框架,爲現代的Java應用程序。  app

基於複合模式,它是創建在簡化用戶界面的開發。  框架

對於複雜的網站,但它仍然一塊兒工做,任何的MVC技術的最簡單,最優雅的方式。 ide


複合式視圖模式(The Composite View Pattern

     全部的網站都有一個共同點:它們是由具備相似結構的網頁。頁面共享相同的佈局,而每一個頁面是由不一樣的獨立的配件,可是始終擺在全部網站相同的位置。  佈局

     複合視圖模式正式化了這個典型的使用,它容許建立具備相似結構的頁面,其中頁面的每一個部分在不一樣狀況而有所不一樣的頁面。 網站


複合式視圖模式怎麼工做?

    爲了理解這個模式,讓我舉個例子。從下圖你能夠看到一個典型的web網頁結構。 ui

    

    這個結構稱爲「典型佈局(classic layout)」。這個模板按照這個佈局組織頁面,在須要的位置放上每一塊,因此header部分在上,footer部分在下,等等。 
spa

    將會發生以下狀況,例如單擊一個超連接跳轉到另外一個頁面,另外一個頁面只須要改變其中的一部分,一般是body部分。             

    

    你能看到,這個頁面雖然是不一樣的,可是他們的不一樣之處僅僅只有body部分。注意,雖然頁面是不一樣的,但並不像在frameset中刷新frame。

    使用了複合式視圖模式 ,頁面的其餘部分是能夠複用的,同時一致的佈局也保存了。

視圖助手的做用

    複合視圖的每一部分都能有一個視圖助手。這個模式會按照頁面的佈局將各個部分準備的數據顯示出來,如:建立一個菜單。

複合視圖VS裝飾器(decorator)

    Tiles 是一個複合視圖框架:它容許在整個應用中複用頁面。經過裝飾器模式也能夠實現複用頁面。例如:Sitemesh 就是一個基於裝飾器模式的。

    經過建立一個模板(template)來組織各個頁面到同一個頁面,裝飾器模式須要一個簡單的HTML頁面,在轉換時添加缺失的部分(在咱們的以上例子中,添加header,footer和menu) 最終呈現它。 

    下面是兩種模式的對比表

 對照表

方面 複合視圖 裝飾器
可重用性 頁面不一樣的部分(template和頁面塊)能在整個應用中使用 全部的裝飾器都能複用,可是裝飾本身的裝飾器同一時間只能應用在一個頁面
配置複雜度 每個頁面必須準確的定義 裝飾器能應用到整個應用
運行時配置 頁面能夠在運行時配置組織 因爲一個頁面是在一個時間裝飾的,他的特色是不呈現的。 
表現 低開銷組合 頁面須要解析才能裝飾


    參考:

       官方文檔

    【說明】本文從Apache Tiles官方文檔件翻譯,翻譯不當之處請你們多多指出。

相關文章
相關標籤/搜索