JavaEE设计模式解析与应用pdf下载

JavaEE设计模式解析与应用百度网盘pdf下载

作者:
简介:JavaEE设计模式解析与应用
出版社:
出版时间:2015-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

   图书基本信息
图书名称 Java EE 设计模式解析与应用
作者 (美)叶尼,(美)希多姆 著,张龙 译
定价 59.8元
出版社 清华大学出版社
ISBN 9787302415862
出版日期 2015-10-01
字数 276000
页码 328
版次 1
装帧 平装
开本 16开
商品重量 Kg

   内容简介

Java EE设计模式解决实际问题

模式是Java开发者必需的设计工具。虽然Java EE提供了许多“经典GoF模式”的默认实现,但大多数富有经验的开发者都低估了这些开箱即用的实现的价值。《Java EE设计模式解析与应用》一书分析每种模式的意图,并通过各种可供选择的示例代码演示其实现,从而帮助广大开发者改进代码质量并提升架构设计水平。

本书首先呈现 常见的GoF模式,接着循序渐进地讲解新模式;将重温这些模式的经典实现并在示例代码的引导下透彻分析Java EE特定的实现方式。为紧贴实际讲解这些模式,作者还讲述了自己亲历的成功和失败项目,这些经历有些十分有趣,有些令人沮丧,但都很好地阐释了在实际中如何灵活运用这些原理。

主要内容

学习Java EE如何通过注解以及比J2EE更整洁的编程模型提供诸多模式的实现

Java EE实现重要模式,包括门面、单例、工厂、装饰、观察者、依赖注入以及针对Web应用的MVC模式

掌握Java EE编码方法,包括面向方面编程、异步编程以及REST风格的Web Service

学习模式运用不当的后果以及如何避免常见陷阱

学习避用模式的时机和原因,并给出替代方案


   作者简介

Murat Yener是一位Android极客,就职于Intel,负责开发桌面应用及HTML5移动应用。Murat具有丰富的JavaWebJava EEOSGi开发经验,是Eclipse提交者和GDG Istanbul用户组管理者,曾多次在重要技术会议上发表演讲。

Alex Theedom是Indigo CodeCollective(E-scape group)的资深开发者,具有丰富的Java EESpring Web应用开发经验。Alex曾为欧洲多个组织开发基于微服务的架构、ATM软件以及在线学习系统。


   目录
[BookCatalog]

   编辑推荐
作者简介:
Murat Yener是一位Android极客,就职于Intel,负责开发桌面应用及HTML5移动应用。Murat具有丰富的Java、Web、Java EE和OSGi开发经验,是Eclipse提交者和GDG Istanbul用户组管理者,曾多次在重要技术会议上发表演讲。
Alex Theedom是Indigo Code Collective(E-scape group)的资深开发者,具有丰富的Java EE和Spring Web应用开发经验。Alex曾为欧洲多个组织开发基于微服务的架构、ATM软件以及在线学习系统。

   文摘

   序言
前    言
本书介绍知名的GoF一书 初所谈到的经典设计模式1,然后探讨如何在Java EE 6与7中实现它们。
每一章开始都会介绍每一种模式的传统实现,然后展示如何通过Java EE特有的语义来实现它。
我们通过完整的代码示例演示模式的传统实现与Java EE实现,并通过实际的示例来说明模式的用法(或是误用)。
我们介绍了每一种模式的优缺点及其用法。每一章都会通过一些练习来考察你对模式在Java EE中实现的理解。
本书读者对象
本书面向各个层次的软件开发者,涵盖了关于模式的一切内容,从对其他图书的引用,到基本的Java实现代码,再到Java EE实现, 后通过实际示例介绍了如何以及何时该使用模式。本书还通过作者的切身经历谈到了关于模式的以及糟糕的实践。
对设计模式与Java EE有基本的了解可以帮助你更好地阅读本书。
如果对模式与基本的Java实现已经具备了一些经验,那么你可以直接跳到Java EE实现上来,这对于重温设计模式知识是非常有帮助的。
本书涵盖的内容
除了一些新模式外,本书还介绍了Java EE提供的作为标准实现一部分的所有经典设计模式,覆盖范围从Java EE 5到版的Java EE 7。
我们希望本书作为你的日常参考,能够一直在你书架上占据一席之地。
本书的组织结构
每一章都重点关注一种设计模式。如果是经典模式,那么会在介绍完该模式后给出一个简单的Java实现。每一章都会通过作者的亲身经历介绍关于这一章所重点关注的模式的实践与糟糕实践。作者亲身经历之后是Java EE实现、示例与说明。每个代码示例都可以独立运行。每一章 后都会给出何时以及如何能高效使用模式的说明。
阅读本书的前提条件
操作系统上装有Java虚拟机(JVM)实现的任何现代计算机都可以运行书中的示例。出于简化编码的需求,你需要一个集成开发环境(IDE)。书中示例可以运行在任何流行的现代IDE上,如Eclipse、NetBeans及IntelliJ。
你需要Java Development Kit(K) for Java EE 7才能编译和运行代码示例,不过一些代码示例也可以运行在旧版本的Java EE K上。
可使用任何Java EE 7兼容的应用服务器来运行示例。我们在Glassfish和TomEE上运行了代码示例,前者是参考实现服务器,后者是流行的Java Web服务器Tomcat的Java EE版本。你可以使用任何服务器,不过由于Glassfish是参考实现,因此使用它。
要运行书中示例,你需要:
●安装有K for Java EE 7的操作系统,如Linux、Mac OS X或Windows
●Java EE 7 K
●一个IDE,如Eclipse for Java EE Developers、NetBeans或IntelliJ
●与Java EE 7兼容的应用服务器,如GlassFish或TomEE
示例源代码可以从Wrox网站下载,网址是:.wrox./ go/projavaeedesignpatterns。
本书的写作动机
2011年11月,在一场关于项目应该使用Java EE还是Spring的争论过后,我回到我的工位,写下了一篇题为“Java EE 6 and the Ewoks”的博文2,这篇博文很快就传开了。故事是根据电视节目How I Met Your Mother展开的。其中,纨绔子弟Barney介绍了一个关于依娃族的理论,依娃族是一种类似于泰迪熊的生物,在《星际大战》第6部中出现。粉丝对于依娃族的感受可谓是泾渭分明。
根据Barney所述,出生在1973年5月25日(那时《星球大战》第3部:武士复仇刚刚上映)之前的人觉得依娃族非常幼稚,因此很讨厌他们。不过,之后出生的人觉得依娃族非常可爱,因为他们总是会让人想起泰迪熊。
回到我的故事上来。与客户争论关于Java EE与Spring的选择问题让我认识到这非常类似于依娃族理论。那些在项目中使用过J2EE 1.4(EJB 1.0/2.0/2.1)的人经历过缓慢、低效的开发环境,以及占内存且Bug重重的IDE,服务器要花好几分钟才能启动。其架构有些过于工程化,失败的可能性很高,因此他们迁移到了Spring。无论使用何种版本,这些人都非常憎恶Java EE。Java EE 5的发布被低估了,并未给人留下深刻的印象。
Java EE再也不是J2EE。它现在更加开放,拥有庞大的社区,并吸收了Spring与Hibernate等框架的理念来重新打磨自己。个重大变化就是其架构与编码风格。Enterprise JavaBeans(EJB)采用了轻量级的Plain Old Java Object(POJO)模型,几乎没什么用处的实体Bean被Java Persistence API(JPA)所取代,REST与Web Service成为标准以及运行时的组成部分,注解取代了XML配置。不过,有些人会说Java EE 5并未对大型迁移做好准备,因为它不像Spring那样成熟,开发环境的响应性也没有那么好。使用Spring与Tomcat而非应用服务器与EJB和Java EE 5会极大提升开发效率,不过Java EE 5依然从头开始,向企业级Java平台的设计、使用与架构上迈出了重要一步。
Java EE 6与7延续了这一转变,它们使用了与Java EE 5相同的原则和理念。Java EE是开发的一个很好的选择,但争论并未结束,这都要拜依娃族理论所赐。
某年炎热的仲夏,我次接到Wrox/Wiley的电话,询问我是否有兴趣写一本关于Spring的图书。我在Spring开发方面颇具经验,也非常有自信,不过市场上已经有太多关于Spring的图书了,这使得再写一本新书的价值变得没那么大了。
此外,在版本6发布之前我就一直在使用Java EE。考虑到Spring与Java EE之间的争论、我的博客以及伊娃族,我打算撰写一本关于Java EE的图书。不过,就像Spring一样,我承认市场上已经有太多关于Java EE的图书了。我总觉得Java EE的一些属性被低估了。Java EE提供了很多设计模式的不错的内建实现,只需通过几个简单的注解即可。
GoF一书中所列出的经典模式被广泛应用在各种语言、框架与平台中。J2EE与Java EE也不例外。事实上,Java EE更进一步,为很多模式提供了默认实现,不过依然有很多颇具经验的开发者低估了这些开箱即用的实现的价值。
我已经为这些模式写了将近一年的博客,因此决定写一本关于如何在Java EE中实现“经典”设计模式的图书。在阅读这本书时,我相信你会给予积极的反馈。
本书填平了Java EE平台与GoF一书中所列出的经典设计模式之间的鸿沟,同时还谈及了一些新模式。这样,我们实际上并未撰写另一本Java EE图书,而是以Java EE的方式介绍了设计模式。
作为该平台的忠实信徒,我撰写博客、讨论如何通过Java EE实现设计模式,从而扩展我的知识面与经验,因此对于我个人来说,撰写这样一本书的事情就是我有机会写下我真的怀有热情的一些东西。虽然我的博客提供了一些更简单的示例,不过他们是在我需要时用作参考的,撰写一本书则更加正式,格式也要更合规,同时遵循着相同的理念,这真是很棒的机会。
本书合著者与我所撰写的每一章都有相同的目标:内容要是我们自己都喜欢看的。我们希望这本书能够成为大家的参考书籍。
我们希望你能喜欢阅读本书,就像我们喜欢撰写本书一样。
本书约定
为了帮助你从本书中获得收益并跟上节奏,全书通篇使用了大量约定。






我们以如下两种方式呈现代码:
●对于大部分代码示例来说,我们使用等宽字体并且没有突出显示。
●我们使用粗体强调当前上下文中特别重要的代码,或是显示出与之前代码片段不同的代码。
p2p.wrox.
要与作者和同行讨论,请加入p2p.wrox.上的P2P论坛。这个论坛是一个基于Web的系统,便于你张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。
在p2p.wrox.上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:
(1) 进入p2p.wrox.,单击Register链接。
(2) 阅读使用协议,并单击Agree按钮。
(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。
(4) 你会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。




加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。
关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
请给wkservice@vip.163.发电子邮件,我们就会检查你的信息,如果是正确的,我们将在本书的后续版本中采用。
要在网站上找到本书的勘误表,可以登录.wrox.,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是.wrox./misc-pages/booklist.s。
源代码
读者在学习本书中的示例时,可以手动输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点.wrox./go/projavaeedesignpatterns下载。
另外,也可以进入.wrox./dynamic/books/download. aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。
还可访问.tupwk../downpage,再输入中文书名或中名ISBN,来下载源代码。





每章首先介绍模式的基本Java实现(如果有),接着列出只能在符合Java EE K和Java EE标准的应用服务器上编译和运行的模式的Java EE实现。
下载代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。
联系作者
关于本书内容有任何问题或是其他相关事项都可以直接通过博客或是Twitter联系两位作者。
Murat Yener:
博客——devchronicles.
Twitter——@yenerm
Alex Theedom:
博客——alextheedom.
Twitter——@alextheedom
相关资料
1. Design Patterns: Elements of Reusable Object‐Oriented Software(Addison‐Wesley,1994):Erich Gamma、Richard Helm、Ralph Johnson与John Vlissides。
2. Java EE 6 and the Ewoks: .devchronicles./2011/ 11/javaee6‐and‐ewoks.。