西游记、设计模式与IBM WebSphere Portal应

  • ISBN编号:9787121071720
  • 出版社:电子工业出版社
  • ISBN
  • 版次:1
  • 商品编码
  • 包装:平装
  • 丛书名:IBM中国开发中心系列
  • 开本:16开
  • 出版时间:2009-
  • 用纸:胶版纸
  • 页数:384
  • 正文语种:中文

编辑推荐

  第三只眼看设计模式-寻例西游,帮助读者窥得设计模式真经!
  《西游记、设计模式与IBM WebSphere Portal应用开发》借鉴中国传统文化,深入浅出地阐释设计模式的精髓。旨在通过浅显易懂的语言、耳熟能详的小故事,让读者形象地认识并掌握设计模式。
  如果您是一位设计模式初学者,《西游记、设计模式与IBM WebSphere Portal应用开发》将带您从全新角度来学习和理解设计模式,并通过大量实例演示,帮助您在掌握设计模式的同时,学会Portal应用开发。
  如果您是一位Portal应用开发人员,您将从《西游记、设计模式与IBM WebSphere Portal应用开发》获得专家的经验之谈,从而对设计模式有更深的理解,学会开发更易于复用、更健壮的Portal应用。
  如果您是一位架构师,您将从《西游记、设计模式与IBM WebSphere Portal应用开发》中了解到如何基于Portal架构企业级门户框架,并借助设计模式,使得这种框架更富生命力。

内容简介

  《西游记、设计模式与IBM WebSphere Portal应用开发》书属于软件设计和开发方面的中高级应用书籍,具有理论介绍、经验交流与实践指导并重的特点。使读者在学习IBM WebSphere Portal企业级协作应用开发的同时,深入了解并应用Java Portlet开发与设计模式,具有较高的应用价值。《西游记》是我国古代四大名著之一,在国内可谓妇孺皆知。《西游记、设计模式与IBM WebSphere Portal应用开发》书借助《西游记》中众多耳熟能详的小故事,以借喻的手法阐释了《Design Patterns: Elements of Reusable Object-Oriented Software》一书中所阐述的23个设计模式的精髓。提供了详细的Java Portlet规范1.0的中文译《西游记、设计模式与IBM WebSphere Portal应用开发》供读者学习参考,并以IBM WebSphere Portal作为实际验证和操作的平台,指导用户基于IBM WebSphere Portal开发功能丰富多样的Portal应用,使读者在熟悉IBM WebSphere Portal应用开发的同时,进一步理解设计模式,做到举一反三。
  《西游记、设计模式与IBM WebSphere Portal应用开发》书的读者对象为从事软件设计、开发的工程人员,以及全日制高校计算机系及相关科系高年级本科生、研究生。

作者简介

  王立,2005年毕业于西安交通大学计算机科学与技术系,获博士学位。先后参与过IBMLot us和Rational产品线的相关开发工作。目前服务于IBM中国系统与技术中心,从事软件开发过程与企业级协作方面的研发工作。
  郑长庆,2005年毕业于浙江大学计算机应用专业,获硕士学位。从事iSerles IBM Workplace.WebSpherePortal等相关产品工作。目前主要从事IBM iSeries Web Administrator开发。对J2EE,WebServices.SOA及Systemi等相关技术感兴趣。
  陈喜伦,西安交通大学计算机软件与理论专业硕士。从事IBM Wetkplace.Web Sphere Portal等产品相关工作。目前从事针对中小企业的VoIPSolutIOll的开发工作,对J2EE、Eclipse、软件设计、面向对象、设计模式、极限编程和敏捷开发等技术和方法感兴趣。
  闫志东,2007年毕业于南开大学计算机软件与理论专业,获硕士学位。主要从事IBMRational懈决方案的设计开发工作。对J2EE,Java,C/C++和Wiridows,Linux软件开发均有兴趣。

目录

第1章序t1
1.1童年的记忆t1
1.2成长的烦恼t2
1.3第三只眼看设计模式t2
1.4门户——新的体验t3

第2章设计模式概论t5
2.1设计模式简介t5
2.2学习设计模式的意义t6
2.2.1复用解决方案t6
2.2.2确立通用术语t6
2.2.3提高面向对象设计的水平t6
2.2.4提高软件的可复用性t7
2.3设计模式的要素和分类t7
2.3.1设计模式的基本要素t7
2.3.2设计模式的分类t8
2.4设计模式和面向对象的设计原则t9
2.4.1单一职责原则(SRP)t10
2.4.2开放封闭原则(OCP)t10
2.4.3Liskov替换原则(LSP)t11
2.4.4依赖倒置原则(DIP)t12
2.4.5接口隔离原则(ISP)t12
2.5选择和使用设计模式t12
2.5.1从重构到模式t13
2.5.2灵活实现设计模式t14
2.5.3避免过度设计t15

第3章Java Portlet规范t16
3.1概述t16
3.1.1基本术语t16
3.1.2与Servlet的关系t17
3.1.3Portal页面t18
3.2Portlet接口t19
3.2.1Portlet生命周期t19
3.3PortletConfigt23
3.4Portlet URLst24
3.5Portlet模式t25
3.5.1VIEW Portlet模式t26
3.5.2EDIT Portlet模式t26
3.5.3HELP Portlet模式t26
3.5.4定制Portlet模式t26
3.5.5GenericPortlet Render处理t30
3.5.6定义Portlet模式支持t30
3.6窗口状态t31
3.6.1NORMAL窗口状态t31
3.6.2MAXIMIZED窗口状态t31
3.6.3MINIMIZED窗口状态t31
3.6.4自定义窗口状态t31
3.7Portlet上下文t32
3.7.1Portlet上下文的域t32
3.7.2Portlet上下文的功能t32
3.7.3和Servlet上下文的关系t32
3.8Portlet Requestt33
3.8.1PortletRequest接口t33
3.8.2ActionRequest接口t35
3.8.3RenderRequest接口t36
3.8.4Request对象的生命周期t36
3.9Portlet Responsest36
3.9.1PortletResponse接口t36
3.9.2ActionResponse接口t37
3.9.3RenderResponse接口t38
3.9.4Response对象的生命周期t39
Portal上下文t39
Portlet优选参数(Portlet Preference)t39
.1PortletPreferences接口t40
.2优选属性的域t40
.3优选属性定义t41
.4验证preference值t42
Sessionst42
.1创建sessiont43
.2session域t43
.3将属性和session绑定t43
.4和Web应用HttpSession的关系t44
.5保留的HttpSession属性名t45
.6Session超时设定(Timeouts)t45
.7最后访问时间(Last Accessed Times)t45
.8重要的session语义(semantics)t45
向Servlet和JSP分派请求t45
.1获取PortletRequestDispatchert45
.2使用Request Dispatchert46
.3include方法t46
用户信息t48
.1定义用户属性t48
.2访问用户属性t49
.3用户信息的重要注意事项t50
缓存(Caching)t50
.1过期缓存t50
Portlet应用t51
.1和Web应用的关系t51
.2和PortletContext的关系t51
.3Portlet应用的素t51
.4目录结构t51
.5Portlet应用类加载器t51
.6Portlet应用存档文件(Portlet Application Archive File)t52
.7Portlet应用部署描述符t52
.8替换Portlet应用t52
.9错误处理t52
.10Portlet应用环境t52
安全t52
.1导言t52
.2角色t53
.3编码安全t53
.4安全约束t54
.5在EJB调用中传播安全身份(Security Identity)t55
打包和部署描述符t55
.1Portlet和Web应用部署描述符t55
.2打包t56
.3Portlet部署描述符素t56
.4处理Portlet部署描述符的规则t57
.5部署描述符t57
.6部署描述符结构图t71
.7部署描述符值的唯一性t73
.8本地化t74
.9部署描述符实例t74
.10资源绑定(Resources Bundles)t76
.11资源绑定实例t77
Portlet标签库t77
.1defineObjects标签t77
.2actionURL标签t78
.3renderURL标签t79
.4namespace标签t80
.5param标签t81
技术兼容性工具包(Technology Compatibility Kit)需求t81
.1TCK测试组件t81
.2TCK需求t82

第4章IBM WebSphere Portalt87
4.1WebSphere平台t87
4.2WebSphere Portal逻辑结构t88
4.3WebSphere Portal核心配置t89
4.4WebSphere Portal安装与配置t90
4.5WebSphere Portal内容管理t91
4.6WebSphere Portal安全t92
4.6.1用户管理认证与WMMt93
4.6.2权限控制t93
4.6.3单点登录t98
4.7虚拟门户(Virtual Portal)t99
4.8组合应用程序t101
4.9搜索t102
Web剪切t102
协作与Lotus Domino集成t103
WebSphere Portal管理t105
.1管理Portlett105
.2XML配置界面t107
.3Portal脚本接口t110
IBM WebSphere Portal开发简介t112
本书所附示例代码说明t125
.1示例程序简介t125
.2代码结构t131
.3所需环境t131
.4安装配置t131

第5章创建型模式t134
5.1基单例模式(Singleton Pattern)t134
5.1.1概述t134
5.1.2寻例西游t138
5.1.3典型应用t139
5.1.4Portal应用t140
5.1.5IBM小故事-IBM Systems Serverst142
5.2工厂方法模式(Factory Method)t144
5.2.1概述t144
5.2.2简单工厂模式的典型应用t145
5.2.3工厂方法模式概述t148
5.2.4寻例西游t150
5.2.5工厂方法模式的典型应用t150
5.2.6Portal应用t154
5.2.7IBM小故事-IBM罗彻斯特实验室(Rochester Lab)t158
5.3抽象工厂模式(Abstract Factory)t159
5.3.1概述t159
5.3.2寻例西游t162
5.3.3典型应用t162
5.3.4与工厂方法模式的比较t168
5.3.5IBM小故事-IBM创始人t169
5.4建造者模式(Builder Pattern)t169
5.4.1概述t169
5.4.2寻例西游t172
5.4.3典型应用t172
5.4.4Portal应用t177
5.4.5IBM小故事–LOGO演变t179
5.5原型模式(Prototype Pattern)t181
5.5.1概述t181
5.5.2寻例西游t183
5.5.3典型应用t183
5.5.4Portal应用t186
5.5.5IBM小故事-人机大战“深蓝”战胜象棋世界冠军t187
5.6小结t188

第6章结构型模式t189
6.1适配器模式(Adapter Pattern)t189
6.1.1概述t189
6.1.2寻例西游t191
6.1.3典型应用t191
6.1.4Portal应用t194
6.1.5小结t197
6.1.6IBM小故事:IBM在中国t198
6.2桥接模式(Bridge Pattern)t199
6.2.1概述t199
6.2.2寻例西游t200
6.2.3典型应用t200
6.2.4Portal应用t207
6.2.5小结t210
6.2.6IBM小故事-IBM中国开发中心t210
6.3组合模式(Composite Pattern)t211
6.3.1概述t211
6.3.2寻例西游t213
6.3.3典型应用t213
6.3.4Portal应用t221
6.3.5小结t225
6.3.6IBM小故事-IBM中国研究院t225
6.4装饰模式(Decorator Pattern)t226
6.4.1概述t226
6.4.2寻例西游t227
6.4.3典型应用t228
6.4.4Portal应用t232
6.4.5小结t233
6.4.6IBM小故事-IBM中国系统中心t234
6.5外观模式(Facade Pattern)t235
6.5.1概述t235
6.5.2寻例西游t236
6.5.3典型应用t236
6.5.4Portal应用t248
6.5.5小结t254
6.5.6IBM小故事-IBM Musict255
6.6享模式(Flyweight Pattern)t256
6.6.1概述t256
6.6.2寻例西游t257
6.6.3典型应用t258
6.6.4Portal应用t263
6.6.5小结t263
6.6.6IBM小故事-IBM员工着装t264
6.7代理模式(Proxy Pattern)t265
6.7.1概述t265
6.7.2寻例西游t266
6.7.3典型应用t266
6.7.4Portal应用t269
6.7.5小结t271
6.7.6IBM小故事-ThinkPad 简史t272
6.8小结t273

第7章行为模式t274
7.1责任链模式(Responsibility Chain)t274
7.1.1概述t274
7.1.2寻例西游t275
7.1.3典型应用t276
7.1.4Portal应用t279
7.1.5小结t281
7.1.6IBM小故事-IBM和阿波罗登月计划t282
7.2模板方法模式(Template Method)t283
7.2.1概述t283
7.2.2寻例西游t284
7.2.3典型应用t285
7.2.4Portal应用t287
7.2.5小结t289
7.2.6IBM小故事 – 探测火星t289
7.3迭代器模式(Iterator)t290
7.3.1概述t290
7.3.2寻例西游t291
7.3.3典型应用t292
7.3.4Portal应用t296
7.3.5小结t296
7.3.6IBM小故事 – IBM掀开个人电脑新纪t296
7.4观察者模式(Observer)t297
7.4.1概述t297
5.1.2寻例西游t298
7.4.3典型应用t298
7.4.4Portal应用t302
7.4.5小结t306
7.4.6IBM小故事-IBM软件助力太空研究t306
7.5中介者模式(Mediator)t307
7.5.1概述t307
7.5.2寻例西游t309
7.5.3典型应用t309
7.5.4Portal应用t314
7.5.5小结t317
7.5.6IBM小故事-IBM将摩尔定律推进到三维时代t317
7.6备忘录模式(Memento)t318
7.6.1概述t318
7.6.2寻例西游t319
7.6.3典型应用t319
7.6.4Portal应用t322
7.6.5小结t324
7.6.6IBM小故事 – IBM和悉尼奥运会t324
7.7命令模式(Command)t325
7.7.1概述t325
7.7.2寻例西游t326
7.7.3典型应用t326
7.7.4Portal应用t335
7.7.5小结t336
7.7.6IBM小故事–IBM全球总部t337
7.8状态模式(State)t338
7.8.1概述t338
7.8.2寻例西游t339
7.8.3典型应用t339
7.8.4Portal应用t342
7.8.5小结t346
7.8.6IBM小故事 – IBM Plant No.1t346
7.9策略模式(Strategy)t347
7.9.1概述t347
7.9.2寻例西游t348
7.9.3典型实例t349
7.9.4Portal应用t353
7.9.5小结t356
7.9.6IBM小故事-路易斯@郭士纳t356
解释器模式(Interpreter)t357
.1概述t357
.2寻例西游t358
.3典型应用t359
.4Portal应用t362
.5小结t363
.6IBM小故事-IBM PC之父t363
访问者模式(Visitor)t364
.1概述t364
.2寻例西游t365
.3典型应用t366
.4Portal应用t370
.5小结t376
.6IBM小故事-图灵奖40年来首次授予女性t376
小结t377
附录A标记片段(Markup Fragment)t378
附录B用户信息属性名(User Information Attribute Names)t379
附录C设计模式中英文名对照速查表t382
参考文献t383查看全部↓

精彩书摘

  第1章序t
  2007年初,收到IBM中国开发中心与电子工业出版社征集写书意向的邮件,怦然心动。这正是一个与更多同行朋友交流学习的好机会,于是迅速提交了写书提纲。之后,承蒙电子工业出版社慧识,才有了这本书的面世。数年前也曾写过一本书,但近三、四年来,尤其是2005年加入IBM后,很少用汉字写大段的文章了。因而刚开始提笔写这本书时,那种艰涩踌躇的感觉,可想而知。
  对于文字,我有着特殊的感情,这里面的故事非只言片语所能道尽。光阴荏苒,二十几年过去了,所幸这感情并未被快节奏的都市生活消磨殆尽。随着一字一句,那些记忆又渐渐浮上心头,清晰起来。
  1.1童年的记忆
  我出生在一个山青水秀的普通南方小镇。20世纪70、80年代,全社会的物质和文化生活都很贫乏,小镇则更加安稳平静,波澜不惊。豆腐板、画片、烟盒三角(我们管这个叫“撇撇”,想来真是一个很怪的词)几乎就是我们所有的玩具,而躲迷藏、丢沙包、摸鱼捞虾几乎就是我们所有的娱乐。黑白电视更是奢侈品,只有数里外的集体宿舍楼有一台。每逢傍晚,楼前的空地摩肩接踵,大家翘首以盼搬出电视的那一刻。
  (这应是我最早看到电视剧《西游记》的时期了,)至今仍对一些剧情有着深刻的印象,比如三打白骨精。那时候最崇拜的就是孙悟空,七十二变,多厉害啊,如果我会,躲迷藏时一定让你们永远也找不到我!小孩子的想法是天真的,看了《霍甲》,就会满世界找武功秘笈,偷偷嘿呀嘿呀,指望有一天飞檐走壁,变成江湖大侠;看了电视剧《西游记》,就会遍寻原著,暗地里照背口诀,甚至盘算是不是也出去寻仙访道一番,练得神通广大的本事。查看全部↓

前言/序言

  笔者自加入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架构企业级的门户框架,并借助设计模式,使这种框架更富有生命力。查看全部↓
热门信息