发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 云架构 框架 开发教程 SOA 大数据 扩展性 并发编程 EDA 分布式 函数编程

推荐文章:composite模式在struts表现层的应用

    
2002-09-18 18:04
赞助商链接

Composite模式是将树形结构的树枝(composite,还有分支)和叶(primitive 没有分支)同等对待,这样就减少系统的复杂性.

这篇文章从jsp页面布局到struts的composite模式,谈得蛮多,重点部分我觉得好像不是很明确。

他说在struts的Tiles技术中,为取得如下页面:


下列xml代码里使用了Composite模式:



<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config.dtd">

<tiles-definitions>
<!-- 这是个组合-->
<definition name='sidebar-definition'
path='sidebar-layout.jsp'>
<put name='top' value='flags.jsp'/>
<put name='bottom' value='sidebar-links.jsp'/>
</definition>

<definition name='sidebar-header-footer-definition'
path='header-footer-sidebar-layout.jsp'>
<!--访问sidebar-definition 和访问下面的header一样,就象
访问单个Jsp页面,所以这里是composite模式-->
<put name='sidebar' value='sidebar-definition'
type='definition'/>

<put name='header' value='header.jsp'/>
<put name='content' value='content.jsp'/>
<put name='footer' value='footer.jsp'/>
</definition>
</tiles-definitions>


其实我觉得 之所以能达到"访问sidebar-definition 和访问下面的header一样,就象访问单个Jsp页面,",这是因为使用了taglib技术才有的客观效果,如果把这个客观效果也归纳为设计模式,那么设计模式不是太多了?我觉得作者是个“泛设计模式主义者”。呵呵

不过,作者在文章中,从include到struct的taglib写得很全面,平时我们偷懒,界面上就使用include header.jsp或include footer.jsp就可以了,虽然这重用了页头页尾的内容,但是这并不能重用layout布局,重用布局是个让人不容易理解的东西,重用布局就是多个页面使用同一个布局,这又类似html中的frame,其实,struts的重用布局概念就类似html的frame。

如果我们在表现层又要重用内容和布局,那么毫无疑问使用struts的Tiles技术,而复杂Tiles技术中常常有composite模式。

文章网址按下面:


A look at the Composite design pattern

cc
2002-09-23 15:09

大体上看了一遍,并不难理解,关键是怎么应用上。

structs你怎么看?你觉得jdon能应用上它么?

2002-09-23 15:36

作过一个forum,用到了struts,cmp2,cmr
感觉struts的开发层次分的比较清楚,减少了耦合,但是增加了开发量

2002-10-14 13:39

cmr
是什么,请教!

2002-10-14 14:00

看一下ejb2.0就知道了

组合     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com