词条 | 西游记、设计模式与IBMWebSpherePortal应用开发 |
释义 | 《西游记》是我国古代四大名著之一,在国内可谓妇孺皆知。《西游记、设计模式与IBMWebSpherePortal应用开发》借助《西游记》中众多耳熟能详的小故事,以借喻的手法阐释了《Design Patterns: Elements of Reusable Object-Oriented Software》一书中所阐述的23个设计模式的精髓。 图书信息作 者: 王立 郑长庆 陈喜伦 闫志东 编著 出 版 社: 电子工业出版社 出版时间: 2008-10-1 页 数:404页 开 本: 16开 I S B N : 9787121071720 分类: 图书 >> 计算机/编程 >>软件工程 定价:¥49.80元 内 容 简 介提供了详细的Java Portlet规范1.0的中文译本供读者学习参考,并以IBM WebSphere Portal作为实际验证和操作的平台,指导用户基于IBM WebSphere Portal开发功能丰富多样的Portal应用,使读者在熟悉IBM WebSphere Portal应用开发的同时,进一步理解设计模式,做到举一反三。 本书属于软件设计和开发方面的中高级应用书籍,具有理论介绍、经验交流与实践指导并重的特点。使读者在学习IBM WebSphere Portal企业级协作应用开发的同时,深入了解并应用Java Portlet开发与设计模式,具有较高的应用价值。 本书的读者对象为从事软件设计、开发的工程人员,以及全日制高校计算机系及相关科系高年级本科生、研究生。 关于作者王立,1998年毕业于西安交通大学电子工程系,2002年于西安交通大学计算机科学与技术系获硕士学位,2005年获博士学位。同年7月加入IBM中国开发中心,先后参与过IBM Lotus和Rational产品线的相关开发工作。目前服务于IBM中国系统与技术中心,从事软件开发过程与企业级协作方面的研发工作。 郑长庆,2005年毕业于浙江大学计算机应用专业,获硕士学位。同年5月加入IBM中国开发中心,从事iSeries上IBM Workplace, WebSphere Portal等相关产品工作。目前主要从事IBM iSeries Web Administrator开发。对J2EE, Web Services, SOA及System i等相关技术感兴趣。 陈喜伦,2003年毕业于中国矿业大学(徐州)计算机专业,2006年毕业于西安交通大学计算机软件与理论专业,获硕士学位。同年7月加入IBM中国开发中心,从事IBM Workplace, WebSphere Portal等产品的相关工作。目前从事于针对中小企业的VoIP Solution的开发工作。对J2EE、Eclipse、软件设计、面向对象、设计模式、极限编程和敏捷开发等技术和方法感兴趣。 闫志东,2007年毕业于南开大学计算机软件与理论专业,获硕士学位。同年7月加入IBM中国开发中心,主要从事IBM Rational解决方案的设计开发工作。对J2EE, Java, C/C++和Windows, Linux软件开发均有兴趣。 前 言笔者自加入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与模式》一书的作者阎宏博士给予我们的理解和支持。 由于时间仓促,加之作者水平有限,书中难免有不妥之处,敬请读者不吝指正。 目 录第1章 序 1 1.1 童年的记忆 1 1.2 成长的烦恼 2 1.3 第三只眼看设计模式 2 1.4 门户——新的体验 3 第2章 设计模式概论 5 2.1 设计模式简介 5 2.2 学习设计模式的意义 6 2.2.1 复用解决方案 6 2.2.2 确立通用术语 6 2.2.3 提高面向对象设计的水平 6 2.2.4 提高软件的可复用性 7 2.3 设计模式的要素和分类 7 2.3.1 设计模式的基本要素 7 2.3.2 设计模式的分类 8 2.4 设计模式和面向对象的设计原则 9 2.4.1 单一职责原则(SRP) 10 2.4.2 开放封闭原则(OCP) 10 2.4.3 Liskov替换原则(LSP) 11 2.4.4 依赖倒置原则(DIP) 12 2.4.5 接口隔离原则(ISP) 12 2.5 选择和使用设计模式 12 2.5.1 从重构到模式 13 2.5.2 灵活实现设计模式 14 2.5.3 避免过度设计 15 第3章 Java Portlet规范 16 3.1 概述 16 3.1.1 基本术语 16 3.1.2 与Servlet的关系 17 3.1.3 Portal页面 18 3.2 Portlet接口 19 3.2.1 Portlet生命周期 19 3.3 PortletConfig 23 3.4 Portlet URLs 24 3.5 Portlet模式 25 3.5.1 VIEW Portlet模式 26 3.5.2 EDIT Portlet模式 26 3.5.3 HELP Portlet模式 26 3.5.4 定制Portlet模式 26 3.5.5 GenericPortlet Render处理 30 3.5.6 定义Portlet模式支持 30 3.6 窗口状态 31 3.6.1 NORMAL窗口状态 31 3.6.2 MAXIMIZED窗口状态 31 3.6.3 MINIMIZED窗口状态 31 3.6.4 自定义窗口状态 31 3.7 Portlet上下文 32 3.7.1 Portlet上下文的域 32 3.7.2 Portlet上下文的功能 32 3.7.3 和Servlet上下文的关系 32 3.8 Portlet Request 33 3.8.1 PortletRequest接口 33 3.8.2 ActionRequest接口 35 3.8.3 RenderRequest接口 36 3.8.4 Request对象的生命周期 36 3.9 Portlet Responses 36 3.9.1 PortletResponse接口 36 3.9.2 ActionResponse接口 37 3.9.3 RenderResponse接口 38 3.9.4 Response对象的生命周期 39 3.10 Portal上下文 39 3.11 Portlet优选参数(Portlet Preference) 39 3.11.1 PortletPreferences接口 40 3.11.2 优选属性的域 40 3.11.3 优选属性定义 41 3.11.4 验证preference值 42 3.12 Sessions 42 3.12.1 创建session 43 3.12.2 session域 43 3.12.3 将属性和session绑定 43 3.12.4 和Web应用HttpSession的关系 44 3.12.5 保留的HttpSession属性名 45 3.12.6 Session超时设定(Timeouts) 45 3.12.7 最后访问时间(Last Accessed Times) 45 3.12.8 重要的session语义(semantics) 45 3.13 向Servlet和JSP分派请求 45 3.13.1 获取PortletRequestDispatcher 45 3.13.2 使用Request Dispatcher 46 3.13.3 include方法 46 3.14 用户信息 48 3.14.1 定义用户属性 48 3.14.2 访问用户属性 49 3.14.3 用户信息的重要注意事项 50 3.15 缓存(Caching) 50 3.15.1 过期缓存 50 3.16 Portlet应用 51 3.16.1 和Web应用的关系 51 3.16.2 和PortletContext的关系 51 3.16.3 Portlet应用的元素 51 3.16.4 目录结构 51 3.16.5 Portlet应用类加载器 51 3.16.6 Portlet应用存档文件(Portlet Application Archive File) 52 3.16.7 Portlet应用部署描述符 52 3.16.8 替换Portlet应用 52 3.16.9 错误处理 52 3.16.10 Portlet应用环境 52 3.17 安全 52 3.17.1 导言 52 3.17.2 角色 53 3.17.3 编码安全 53 3.17.4 安全约束 54 3.17.5 在EJB调用中传播安全身份(Security Identity) 55 3.18 打包和部署描述符 55 3.18.1 Portlet和Web应用部署描述符 55 3.18.2 打包 56 3.18.3 Portlet部署描述符元素 56 3.18.4 处理Portlet部署描述符的规则 57 3.18.5 部署描述符 57 3.18.6 部署描述符结构图 71 3.18.7 部署描述符值的唯一性 73 3.18.8 本地化 74 3.18.9 部署描述符实例 74 3.18.10 资源绑定(Resources Bundles) 76 3.18.11 资源绑定实例 77 3.19 Portlet标签库 77 3.19.1 defineObjects标签 77 3.19.2 actionURL标签 78 3.19.3 renderURL标签 79 3.19.4 namespace标签 80 3.19.5 param标签 81 3.20 技术兼容性工具包(Technology Compatibility Kit)需求 81 3.20.1 TCK测试组件 81 3.20.2 TCK需求 82 第4章 IBM WebSphere Portal 87 4.1 WebSphere平台 87 4.2 WebSphere Portal逻辑结构 88 4.3 WebSphere Portal核心配置 89 4.4 WebSphere Portal安装与配置 90 4.5 WebSphere Portal内容管理 91 4.6 WebSphere Portal安全 92 4.6.1 用户管理认证与WMM 93 4.6.2 权限控制 93 4.6.3 单点登录 98 4.7 虚拟门户(Virtual Portal) 99 4.8 组合应用程序 101 4.9 搜索 102 4.10 Web剪切 102 4.11 协作与Lotus Domino集成 103 4.12 WebSphere Portal管理 105 4.12.1 管理Portlet 105 4.12.2 XML配置界面 107 4.12.3 Portal脚本接口 110 4.13 IBM WebSphere Portal开发简介 112 4.14 本书所附示例代码说明 125 4.14.1 示例程序简介 125 4.14.2 代码结构 131 4.14.3 所需环境 131 4.14.4 安装配置 131 第5章 创建型模式 134 5.1 基单例模式(Singleton Pattern) 134 5.1.1 概述 134 5.1.2 寻例西游 138 5.1.3 典型应用 139 5.1.4 Portal应用 140 5.1.5 IBM小故事-IBM Systems Servers 142 5.2 工厂方法模式(Factory Method) 144 5.2.1 概述 144 5.2.2 简单工厂模式的典型应用 145 5.2.3 工厂方法模式概述 148 5.2.4 寻例西游 150 5.2.5 工厂方法模式的典型应用 150 5.2.6 Portal应用 154 5.2.7 IBM小故事-IBM罗彻斯特实验室(Rochester Lab) 158 5.3 抽象工厂模式(Abstract Factory) 159 5.3.1 概述 159 5.3.2 寻例西游 162 5.3.3 典型应用 162 5.3.4 与工厂方法模式的比较 168 5.3.5 IBM小故事-IBM创始人 169 5.4 建造者模式(Builder Pattern) 169 5.4.1 概述 169 5.4.2 寻例西游 172 5.4.3 典型应用 172 5.4.4 Portal应用 177 5.4.5 IBM小故事–LOGO演变 179 5.5 原型模式(Prototype Pattern) 181 5.5.1 概述 181 5.5.2 寻例西游 183 5.5.3 典型应用 183 5.5.4 Portal应用 186 5.5.5 IBM小故事-人机大战“深蓝”战胜象棋世界冠军 187 5.6 小结 188 第6章 结构型模式 189 6.1 适配器模式(Adapter Pattern) 189 6.1.1 概述 189 6.1.2 寻例西游 191 6.1.3 典型应用 191 6.1.4 Portal应用 194 6.1.5 小结 197 6.1.6 IBM小故事:IBM在中国 198 6.2 桥接模式(Bridge Pattern) 199 6.2.1 概述 199 6.2.2 寻例西游 200 6.2.3 典型应用 200 6.2.4 Portal应用 207 6.2.5 小结 210 6.2.6 IBM小故事-IBM中国开发中心 210 6.3 组合模式(Composite Pattern) 211 6.3.1 概述 211 6.3.2 寻例西游 213 6.3.3 典型应用 213 6.3.4 Portal应用 221 6.3.5 小结 225 6.3.6 IBM小故事-IBM中国研究院 225 6.4 装饰模式(Decorator Pattern) 226 6.4.1 概述 226 6.4.2 寻例西游 227 6.4.3 典型应用 228 6.4.4 Portal应用 232 6.4.5 小结 233 6.4.6 IBM小故事-IBM中国系统中心 234 6.5 外观模式(Facade Pattern) 235 6.5.1 概述 235 6.5.2 寻例西游 236 6.5.3 典型应用 236 6.5.4 Portal应用 248 6.5.5 小结 254 6.5.6 IBM小故事-IBM Music 255 6.6 享元模式(Flyweight Pattern) 256 6.6.1 概述 256 6.6.2 寻例西游 257 6.6.3 典型应用 258 6.6.4 Portal应用 263 6.6.5 小结 263 6.6.6 IBM小故事-IBM员工着装 264 6.7 代理模式(Proxy Pattern) 265 6.7.1 概述 265 6.7.2 寻例西游 266 6.7.3 典型应用 266 6.7.4 Portal应用 269 6.7.5 小结 271 6.7.6 IBM小故事-ThinkPad 简史 272 6.8 小结 273 第7章 行为模式 274 7.1 责任链模式(Responsibility Chain) 274 7.1.1 概述 274 7.1.2 寻例西游 275 7.1.3 典型应用 276 7.1.4 Portal应用 279 7.1.5 小结 281 7.1.6 IBM小故事-IBM和阿波罗登月计划 282 7.2 模板方法模式(Template Method) 283 7.2.1 概述 283 7.2.2 寻例西游 284 7.2.3 典型应用 285 7.2.4 Portal应用 287 7.2.5 小结 289 7.2.6 IBM小故事 – 探测火星 289 7.3 迭代器模式(Iterator) 290 7.3.1 概述 290 7.3.2 寻例西游 291 7.3.3 典型应用 292 7.3.4 Portal应用 296 7.3.5 小结 296 7.3.6 IBM小故事 – IBM掀开个人电脑新纪元 296 7.4 观察者模式(Observer) 297 7.4.1 概述 297 5.1.2 寻例西游 298 7.4.3 典型应用 298 7.4.4 Portal应用 302 7.4.5 小结 306 7.4.6 IBM小故事-IBM软件助力太空研究 306 7.5 中介者模式(Mediator) 307 7.5.1 概述 307 7.5.2 寻例西游 309 7.5.3 典型应用 309 7.5.4 Portal应用 314 7.5.5 小结 317 7.5.6 IBM小故事-IBM将摩尔定律推进到三维时代 317 7.6 备忘录模式(Memento) 318 7.6.1 概述 318 7.6.2 寻例西游 319 7.6.3 典型应用 319 7.6.4 Portal应用 322 7.6.5 小结 324 7.6.6 IBM小故事 – IBM和悉尼奥运会 324 7.7 命令模式(Command) 325 7.7.1 概述 325 7.7.2 寻例西游 326 7.7.3 典型应用 326 7.7.4 Portal应用 335 7.7.5 小结 336 7.7.6 IBM小故事–IBM全球总部 337 7.8 状态模式(State) 338 7.8.1 概述 338 7.8.2 寻例西游 339 7.8.3 典型应用 339 7.8.4 Portal应用 342 7.8.5 小结 346 7.8.6 IBM小故事 – IBM Plant No.1 346 7.9 策略模式(Strategy) 347 7.9.1 概述 347 7.9.2 寻例西游 348 7.9.3 典型实例 349 7.9.4 Portal应用 353 7.9.5 小结 356 7.9.6 IBM小故事-路易斯·郭士纳 356 7.10 解释器模式(Interpreter) 357 7.10.1 概述 357 7.10.2 寻例西游 358 7.10.3 典型应用 359 7.10.4 Portal应用 362 7.10.5 小结 363 7.10.6 IBM小故事-IBM PC之父 363 7.11 访问者模式(Visitor) 364 7.11.1 概述 364 7.11.2 寻例西游 365 7.11.3 典型应用 366 7.11.4 Portal应用 370 7.11.5 小结 376 7.11.6 IBM小故事-图灵奖40年来首次授予女性 376 7.12 小结 377 附录A 标记片段(Markup Fragment) 378 附录B 用户信息属性名(User Information Attribute Names) 379 附录C 设计模式中英文名对照速查表 382 参考文献 383 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。