Apache Tiles 学习(一)、复合视图模式

官方文档:http://tiles.apache.org/framework/tutorial/pattern.html

转自:http://my.oschina.net/jast90/blog/283254

Apache Tiles 是什么?

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

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

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

一个免费开源的模板框架,为现代的Java应用程序。 

基于复合模式,它是建立在简化用户界面的开发。 

对于复杂的网站,但它仍然一起工作,任何的MVC技术的最简单,最优雅的方式。


复合式视图模式(The Composite View Pattern

     所有的网站都有一个共同点:它们是由具有类似结构的网页。页面共享相同的布局,而每个页面是由不同的独立的配件,但是始终摆在所有网站相同的位置。 

     复合视图模式正式化了这个典型的使用,它允许创建具有类似结构的页面,其中页面的每个部分在不同情况而有所不同的页面。


复合式视图模式怎么工作?

    为了理解这个模式,让我举个例子。从下图你可以看到一个典型的web网页结构。

   

    这个结构称为“典型布局(classic layout)”。这个模板按照这个布局组织页面,在需要的位置放上每一块,所以header部分在上,footer部分在下,等等。 

    将会发生如下情况,例如单击一个超链接跳转到另一个页面,另一个页面只需要改变其中的一部分,通常是body部分。             

   

    你能看到,这个页面虽然是不同的,但是他们的不同之处仅仅只有body部分。注意,虽然页面是不同的,但并不像在frameset中刷新frame。

    使用了复合式视图模式 ,页面的其他部分是可以复用的,同时一致的布局也保存了。

视图助手的作用

    复合视图的每一部分都能有一个视图助手。这个模式会按照页面的布局将各个部分准备的数据显示出来,如:创建一个菜单。

复合视图VS装饰器(decorator)

    Tiles 是一个复合视图框架:它允许在整个应用中复用页面。通过装饰器模式也可以实现复用页面。例如:Sitemesh 就是一个基于装饰器模式的。

    通过创建一个模板(template)来组织各个页面到同一个页面,装饰器模式需要一个简单的HTML页面,在转换时添加缺失的部分(在我们的以上例子中,添加header,footer和menu) 最终呈现它。 

    下面是两种模式的对比表

 对照表


方面复合视图装饰器
可重用性页面不同的部分(template和页面块)能在整个应用中使用所有的装饰器都能复用,但是装饰自己的装饰器同一时间只能应用在一个页面
配置复杂度每一个页面必须准确的定装饰器能应用到整个应用
运行时配置页面可以在运行时配置组织由于一个页面是在一个时间装饰的,他的特点是不呈现的。 
表现低开销组合页面需要解析才能装饰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值