笔者自加入IBM中国开发中心以来,参与过Lotus和Rational产品线的开发工作。由于工作的原因,每日都要与程序代码打交道。所写的每一行代码都将是产品的组成部分,都将发布给客户使用,从而关乎客户的切身利益,关乎公司的形象效益,同时也关乎个人的前途发展。这一行行代码就像飞机身上的螺丝钉,虽然不起眼,却是万万不能马虎了事的。.
提高员工的工作效率,保证代码的优良质量是信息技术行业所有企业追求的目标。常听一些朋友说,判断“IT民工”和“IT精英”的标准就是看他对设计模式的掌握使用程度。虽然我不能完全赞同这种观点,但设计模式对程序开发人员的重要程度是毋庸置疑的,掌握设计模式对提高程序员的素质也是必不可少的。
在Web应用日益丰富和普及的今天,您可能听人谈论过Portal、Portlet,看到过各种介绍“门户”的宣传。那么,到底什么是Portal和Portlet呢?它又为什么会成为一个热门的Web技术应用呢?
按照JSR 168的Portlet 1.0规范定义,Portal是一种基于Web的应用,通常提供了个性化、单点登录、不同来源的内容聚合等功能,并且作为信息系统表现层的宿主。聚合是将不同来源的内容整合到一个Web页面中的操作。Portal可以具备复杂完善的个性化属性以便为用户提供定制的内容。Portal页面还可以含有不同的Portlet来为不同的用户创建内容。
Portlet是一种基于Web组件的Java技术,由Portlet容器管理。Portlet容器处理各种请求并动态地生成内容。Portal页面使用Portlet作为可插拔的用户接口组件,来为信息系统提供表现层。
IBM WebSphere Portal就是这样一个能让用户插入新功能或扩展的框架。
IBM WebSphere Portal作为一个成熟的框架,包括运行时服务器、服务、工具和许多其他特性。这种可扩展框架允许最终用户与企业应用程序、人员、内容和流程交互。他们可以个性化组织他们自己的门户网站视图、管理他们自己的概要文件并发布和共享文档。门户将各种来源的组件、应用程序、流程和内容组合到统一的表示界面中,客户可以从多种终端设备访问此表示界面。IBM WebSphere Portal提供了附加的服务,如单点登录、安全性、内容管理、搜索和分类学(taxonomy)、对移动设备的支持,以及站点分析等。总之,IBM WebSphere Portal可以帮助企业根据用户或工作角色、安全需要、设备设置、个人首选项和管理设置来自定义门户,并可定义工作流以支持业务流程。
由此可见,在IBM WebSphere Portal将工作环境绑定到一个内聚界面中的同时,它还提供服务来增强用户的体验,以便该统一界面比使用各个组件时的界面更加丰富。IBM WebSphere Portal通过帮助企业拥有这样一个全面的、可管理的工作环境来降低总体成本,并为企业业务带来竞争优势。
Portal应用开发最终将体现在代码编写上,而这就不可避免地遇到设计模式的问题。在设计开发中采用合适的设计模式,不仅可以更好地完成Portal应用所要达到的目的,而且可以大大提高Portal应用在实际环境中的表现,比如可扩展性、鲁棒性、可用性,等等。因此,理解并恰当地在Portal应用开发中使用设计模式就成为本书所要解决的主要问题。
本书的目的
市面上关于设计模式的书籍不在少数,其中也不乏经典之作。作者刚开始学习设计模式时,一直苦于没有一本浅显生动,快速上手的参考书。所读的书籍大多从理论出发,虽然严谨,但是死板,让初学者有敬而生畏的感觉。本书将从另外一个视角,通过描述中国古代四大名著之一的《西游记》中众多耳熟能详的小故事,以借喻的手法来阐释各种设计模式的精髓。但本书的目的不单单在于深入浅出地阐述设计模式,更重要的是希望借助设计模式,提高开发Portal应用程序的能力。从而达到“寓学于习”的目的,使我们的读者在掌握设计模式的同时,了解Portal应用的开发,实现一箭双雕的效果。
金庸的武侠小说中,功夫是有套路的,即便是九阴真经、降龙十八掌,甚至葵花宝典之类的绝顶武功,也有秘笈以资效习。如果能练得一招半式,威力便不同凡响,比如福建林家。显然,读完了秘笈,并非立刻就是高手,还得要日夜苦练、琢磨体会,直到牢记于心,融会贯通。此时,便可以闯荡江湖,打出名号了。而功夫练到极致,达到“无招胜有招”的境界,如风清扬般,便是不世出的武学泰斗了。
同样的,掌握设计模式并不是我们最终的目的,只有将设计模式灵活应用到实际的项目中,并产生真正的价值,才是我们学习设计模式的根本目的。也只有在实践中不断使用设计模式,总结经验教训,才能对设计模式有更深入、更透彻的理解,最后升华到“无招胜有招”的境界。
本书的读者群
本书是为软件开发人员所写的一本将设计模式运用于Portal应用开发中的参考手册。
如果您是一位Portal应用开发人员,您将从本书中获得Portal应用开发的经验之谈。读完本书之后,您将对设计模式有更深的理解,并帮助您学会开发更易于复用、更健壮的Portal应用。
如果您是一位设计模式初学者,本书将带您从一个新的角度来学习和理解设计模式,并通过大量实例演示,让您在掌握设计模式的同时,学会Portal应用的开发。
如果您是一位架构师,您将从本书中了解如何基于Portal架构企业级的门户框架,并借助设计模式,使这种框架更富有生命力。
本书的内容与组织结构
本书借助《西游记》中众多耳熟能详的小故事,以借喻的手法来阐释各种设计模式的精髓。并且,以IBM WebSphere Portal作为实际验证和操作的平台,一步步指导用户基于IBM WebSphere Portal开发功能丰富多样的Portal应用,使读者在熟悉IBM WebSphere Portal应用开发的同时,得以深入理解设计模式,并能举一反三。本书提供了一个完整的具备基本功能的企业级协作应用的实例,各个设计模式在实例中均有体现,读者可以通过该实例加深对设计模式应用的理解。..
.第1章,介绍作者写作此书的初衷。
第2章,介绍设计模式的起源、发展、现状和趋势,帮助读者对设计模式的来龙去脉有一个清晰的了解。
第3章,介绍JSR 168,即Java Portlet规范1.0,使读者掌握Java Portlet开发的基本规则。
第4章,介绍IBM WebSphere Portal的基本概念和特点,包括Portal的起源、发展、现状和趋势,使读者对IBM WebSphere Portal应用有一个基本的认识。读者将从中学到IBM WebSphere Portal应用开发的基本流程和方法。
第5章,逐一阐述各个创建型模式,每个模式均独立成节。每节都以《西游记》中的一个小故事开始,以借喻类比的手法,解析该设计模式的含义。之后,从软件开发的角度,深入阐述各个模式的特点和用法,辅之以UML描述图和典型示例代码,帮助读者理解该模式的应用场景和使用方法。最后,描述该设计模式在本书所提供的实例中的具体应用。
第6章和第7章分别阐述结构型模式和行为型模式,组织结构与第5章相同。
其中,王立编写第1、3、5章,郑长庆编写第4、7章,陈喜伦编写第2、6章,闫志东编程调试了本书所附完整Portal实例的源代码。此外,王立和闫志东负责撰写了书中“寻例西游”部分。
附录A、B提供了Portlet 1.0规范中的标记片断和用户信息属性名的相关详细信息。
附录C提供了设计模式名的中英文速查表。
参考文献列出了本书所引用的全部参考资料,读者可据此做进一步的学习。
致谢
感谢我的妻子闫焱女士,无论成功失败、顺境逆境,她都在我身后给予坚定的支持和鼓励。感谢我的父母,祝愿他们生活更加幸福。感谢我的岳父岳母,在我攻读博士期间给予的生活上的关心和照顾。感谢与我共同完成此书的郑长庆、陈喜伦和闫志东三位同事,他们都是IBM的精英,能与他们合作,是我的幸事。
——王立
感谢父母不辞辛苦,对我一直以来的培养和照顾,祝他们在以后生活中健康,幸福。感谢我的女友何贞女士在著书期间给予我的支持、鼓励和宝贵的参考意见。感谢王立、陈喜伦和闫志东三位同事,非常庆幸能与这些IBM优秀人才共同合作完成此书。
——郑长庆
感谢我的父母对我的培养,十几年来一直在外地求学和工作,他们对我的关心、鼓励和教诲是我学习和工作的最大动力,祝愿他们身体一直安康。感谢我正在读博士的女友张云,专心于学术研究的她不辞辛苦,在我著书期间给了我很大的支持和鼓励。感谢王立、郑长庆和闫志东三位优秀的IBM同事,从他们身上我学到了很多宝贵的知识。
——陈喜伦
感谢父母对我的培养和教育,无论成功还是失败,他们都会给予安慰和支持,祝愿他们身体健康,在以后的生活中幸福、快乐。感谢我的同事王立、郑长庆和陈喜伦,能够和他们一起共著此书,我感到十分快乐。
——闫志东
感谢IBM中国系统与技术中心的谢觉、于海波、徐明辉、Hilda Wu、Hao Tran和中国开发中心的阎小兵等同事在本书写作过程中给予我们的关注和支持。感谢《Java与模式》一书的作者阎宏博士给予我们的理解和支持。
由于时间仓促,加之作者水平有限,书中难免有不妥之处,敬请读者不吝指正。...