通过Decorator模式和JSTL扩展功能

ZDNet软件频道 时间:2002-12-26 作者:BUILDER.COM |  我要评论()
本文关键词:
使用Decorator模式——也叫做Wrapper模式——的主要原因是需要把功能添加给类,而不需要修改其代码或者扰乱其继承。

你可能已经在使用Decorator模式了,但是和所有的模式都一样,有一点是很重要的,那就是要了解你为什么在使用它,以及如何同其他开发人员就它进行交流。

使用Decorator模式——也叫做Wrapper模式——的主要原因是需要把功能添加给类,而不需要修改其代码或者扰乱其继承。尽管你可能会希望类拥有更多的功能,使用Decorator模式就意味着:已经被你改善过的功能不再需要通过扩展类来再次使用已有的功能。

这里有个例子。如果给定了一个叫做Action的接口,它带有两个方法,act1()act2(),而且这个接口的具体版本ConcreteAction也已给定,那么Decorator将是一个实现Action的类,而且其构造函数会接纳Action(常常是ConcreteAction)。所以其代码看起来会像Listing A里的那样。

使用Decorator所产生的类比继承的更少,所以代码的编写会更加简单;但是,它常常产生更多的对象,这让调试更加困难,尤其因为加入的灵活性会在新的方面产生错误。


相关文章
  • 《EJB 2.1规范的简要回顾》
    有了EJB 2.1规范的支持,Java继续着其快速的发展。更加仔细地看看这个版本新增的令人激动的特性吧。
  • 《Java:不只能用于服务器了?》
    Java在为服务器端的应用上享有相当的声誉。但是现在这门语言也正在更多地被选择用于嵌入开发。不要错过针对这篇文章所发表的最新讨论


用JSTL的导入标签克服jsp:include的局限性

JavaServer页面标准标签库(JSTL)提供了自定义标签的标准集,其中包括JSTL导入标签。这个导入标签向jsp:include标签添加功能,并消除了你自己为这些功能编写代码的需要。

第一个额外的功能能让你能够直接地把其他Web网站的内容包括进自己的页面。所以下面的内容现在是合法的:

    <c:import url="http://www.example.com/somecontent.html"/>

你甚至可以使用ftp:

    <c:import url="ftp://ftp.example.com/somecontent.txt"/>

你可以把URL保存到变量里,而不是直接地把它导入到页面。这是所有JSTL标签所通用的策略,并能增加JSP页面的能力:

    <c:import url="http://www.example.com/example.inc" var="example"/>

由于这个被包括的页面是被保存在example变量里的,所以你可以使用另一个taglib,例如Jakarta字符串的taglib,来使用done.com替换掉所有对example.com的参照。JSTL导入标签有一个c的命名空间,这个c代表core,是推荐的命名空间。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134