新書推薦:
《
(棱镜精装人文译丛)蔑视大众:现代社会文化斗争的实验
》
售價:NT$
275.0
《
皇家宫廷中的保健秘方 中小学课外阅读
》
售價:NT$
290.0
《
《诗经》十五讲 十五堂《诗经》历史文化与文学课 丹曾人文通识丛书
》
售價:NT$
395.0
《
述异记汇笺及情节单元分类研究(上下册)
》
售價:NT$
475.0
《
环境、社会、治理(ESG)信息披露操作手册
》
售價:NT$
1190.0
《
桑德拉销售原则 伍杰 [美]大卫·马特森
》
售價:NT$
440.0
《
理论的意义
》
售價:NT$
340.0
《
悬壶杂记:医林旧事
》
售價:NT$
240.0
|
內容簡介: |
用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具有丰富的Java、Web、Java EE和OSGi开发经验,是Eclipse提交者和GDG Istanbul用户组管理者,曾多次在重要技术会议上发表演讲。
Alex Theedom是Indigo Code
CollectiveE-scape group的资深开发者,具有丰富的Java EE和Spring Web应用开发经验。Alex曾为欧洲多个组织开发基于微服务的架构、ATM软件以及在线学习系统。
|
目錄:
|
目 录
第Ⅰ部分 Java EE设计模式介绍
第1章 设计模式概览3
1.1 何为设计模式4
1.1.1 如何检测模式,为何需要模式6
1.1.2 现实世界中的模式6
1.2 设计模式基础8
1.3 企业模式8
1.3.1 从Java到企业级Java9
1.3.2 企业Java模式的出现10
1.3.3 设计模式与企业模式11
1.3.4 当传统设计模式遇到Java EE12
1.3.5 当模式变成反模式13
1.4 小结14
1.5 相关资料14
第2章 Java EE基础17
2.1 多层架构19
2.2 客户端层20
2.3 中间层21
2.3.1 Web层21
2.3.2 业务层22
2.4 EIS层23
2.5 Java EE服务器24
2.6 Java EE Web Profile25
2.7 Java EE核心原则25
2.8 约定优于配置26
2.9 上下文与依赖注入26
2.10 拦截器28
2.11 小结30
2.12 本章练习30
第Ⅱ部分 实现Java EE设计模式
第3章 门面模式33
3.1 何为门面34
3.2 使用普通代码实现门面模式36
3.3 使用Java EE实现门面模式38
3.3.1 使用无状态Bean实现门面38
3.3.2 使用有状态Bean实现门面41
3.4 何时以及何处该使用门面模式42
3.5 小结43
3.6 本章练习43
3.7 相关资料43
第4章 单例模式45
4.1 何为单例?46
4.1.1 单例模式类图47
4.1.2 使用普通代码实现单例模式48
4.2 使用Java EE实现单例模式53
4.2.1 单例Bean53
4.2.2 在启动时使用单例54
4.2.3 确定启动顺序56
4.2.4 管理并发59
4.3 何处以及何时该使用单例模式63
4.4 小结63
4.5 本章练习64
4.6 相关资料65
第5章 依赖注入与CDI67
5.1 何为依赖注入?68
5.2 使用普通代码实现DI69
5.3 使用Java EE实现DI73
5.3.1 @Named注解75
5.3.2 上下文与依赖注入CDI76
5.3.3 CDI与EJB77
5.3.4 CDI Bean77
5.3.5 @Inject注解79
5.3.6 上下文与作用域79
5.3.7 命名与EL80
5.3.8 用于Backing JSF的CDI Bean81
5.3.9 限定符81
5.3.10 Alternatives82
5.3.11 Stereotypes83
5.3.12 通过CDI实现的其他模式84
5.4 小结84
5.5 本章练习85
5.6 相关资料85
第6章 工厂模式87
6.1 何为工厂?88
6.2 工厂方法89
6.3 抽象工厂94
6.4 使用Java EE实现工厂模式96
6.5 何处以及何时该使用工厂模式110
6.6 小结111
6.7 本章练习111
6.8 相关资料111
第7章 装饰模式113
7.1 何为装饰器?114
7.2 使用普通代码实现装饰模式116
7.3 使用Java EE实现装饰模式121
7.4 何处以及何时该使用装饰模式129
7.5 小结130
7.6 本章练习130
7.7 相关资料131
第8章 面向方面编程拦截器133
8.1 何为面向方面编程?134
8.2 使用普通代码实现AOP137
8.3 Java EE中的方面—— 拦截器140
8.3.1 拦截器生命周期145
8.3.2 默认级别的拦截器146
8.3.3 拦截器顺序147
8.3.4 CDI拦截器150
8.4 何处以及何时该使用拦截器153
8.5 小结154
8.6 相关资料155
第9章 异步157
9.1 何为异步编程158
9.2 使用普通代码实现异步模式161
9.3 Java EE中的异步编程164
9.3.1 异步Bean164
9.3.2 异步Servlet167
9.4 何处以及何时该使用异步编程172
9.5 小结174
9.6 本章练习174
9.7 相关资料175
第10章 定时器服务177
10.1 何为定时器服务178
10.2 使用Java EE实现定时器181
10.2.1 自动化定时器181
10.2.2 编程式定时器183
10.2.3 定时器表达式187
10.2.4 事务190
10.3 小结191
10.4 本章练习192
10.5 相关资料192
第11章 观察者模式193
11.1 何为观察者?194
11.1.1 说明195
11.1.2 观察者类图197
11.2 使用普通代码实现观察者模式197
11.3 使用Java EE实现观察者模式200
11.4 何处以及何时该使用观察者模式209
11.5 小结210
11.6 本章练习211
11.7 相关资料211
第12章 数据访问模式213
12.1 何为数据访问模式?214
12.2 数据访问模式概览216
12.2.1 数据传输对象模式216
12.2.2 Java持久化架构API与对象关系映射217
12.3 使用Java EE实现数据访问模式218
12.4 何处以及何时该使用数据访问模式227
12.5 小结227
12.6 本章练习228
12.7 相关资料228
第13章 REST风格的Web Service229
13.1 何为REST?230
13.2 REST的6个约束232
13.2.1 客户端-服务器233
13.2.2 统一接口233
13.2.3 无状态233
13.2.4 可缓存233
13.2.5 分层系统234
13.2.6 按需编码234
13.3 REST API的理查森能力成熟度模型234
13.3.1 级别0:POXPlain Old XML沼泽235
13.3.2 级别1:资源235
13.3.3 级别2:HTTP动词235
13.3.4 级别3:超媒体控件235
13.4 设计REST风格的API235
13.4.1 资源命名236
13.4.2 名词而非动词237
13.4.3 自说明237
13.4.4 复数而非单数237
13.4.5 HTTP方法238
13.4.6 GET238
13.4.7 POST239
13.4.8 PUT239
13.4.9 DELETE240
13.5 REST实战240
13.5.1 users名词240
13.5.2 topics名词与posts名词242
13.6 使用Java EE实现REST244
13.7 HATEOAS249
13.8 何处以及何时该使用REST253
13.9 小结253
13.10 本章练习254
13.11 相关资料254
第14章 模型、视图与控制器模式255
14.1 何为MVC设计模式?256
14.2 使用普通代码实现MVC模式260
14.3 使用Java EE实现MVC模式265
14.4 FacesServlet265
14.5 使用FacesServlet实现MVC266
14.6 何处以及何时该使用MVC模式269
14.7 小结269
14.8 本章练习270
14.9 相关资料270
第15章 Java EE中的其他模式271
15.1 何为WebSockets?272
15.2 何为面向消息的中间件275
15.3 何为微服务架构?277
15.3.1 单块架构278
15.3.2 可伸缩性279
15.3.3 分解为服务280
15.3.4 微服务的好处281
15.3.5 天下没有免费的午餐282
15.3.6 结论283
15.4 一些反模式284
15.4.1 超级类284
15.4.2 面条架构284
15.4.3 哥伦布先生285
15.4.4 利益之交285
15.4.5 前沿技术286
15.4.6 辅助类286
15.5 相关资料287
第Ⅲ部分 总 结
第16章 设计模式:好处、坏处与丑陋之处291
16.1 好处:通往成功之路的模式292
16.2 坏处:模式的过度使用与滥用294
16.3 丑陋之处296
16.4 小结298
16.5 相关资料298
|
|