猜你喜欢
Java设计模式及实践  [Design Patterns and Best Practices in Java]

Java设计模式及实践 [Design Patterns and Best Practices in Java]

书籍作者:卡马尔米特·辛格 ISBN:9787111629436
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8281
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
对于开发人员来说,掌握设计模式有助于提高代码质量,促进代码重用,增强架构健壮性。随着编程语言的不断发展,新特性层出不穷,在其被广泛使用前,程序员往往需要花费大量时间去理解和掌握。
  《Java设计模式及实践》的目的就是降低新技术趋势的接受难度,为程序员提供良好的应用实践。
  《Java设计模式及实践》向你展示Java语言中更加智能化的编码实例。书中首先介绍面向对象编程(OOP)和函数式编程(FP)范式,然后描述常用设计模式的经典使用方法,并解释如何利用函数式编程特性改变经典的设计模式。
  你将学习混合使用OOP和FP的实现方式,然后学习响应式编程模型——一种为了编写更好的代码而将OOP和FP结合使用的方法。
  之后,《Java设计模式及实践》将介绍从MVC架构向微服务和无服务器架构转变的发展趋势,最后介绍Java新版本的功能特性及其实践。
  通过《Java设计模式及实践》的学习,你可以有效地解决开发应用程序过程中的常见问题,轻松地应对各种规模项目的扩展和维护。具体包括:
  理解面向对象编程和函数式编程范式
  探究传统Java设计模式的使用方式
  了解Java的新功能特性及其对经典设计模式的影响
  了解响应式编程及其作为增强版的函数式编程的原因
  应用响应式编程模式并探寻其解决常见问题的好方法
  了解架构的发展趋势和从MVC架构到无服务器应用架构的转变
  应用Java的新功能特性及其实践
作者简介
卡马尔米特·辛格(Kamalmeet Singh),在15岁时首次尝试了编程并立刻爱上了它。他在获得信息技术学士学位之后加入了一家创业公司,在那里进一步提升了对Java编程的热爱之情。IT行业13年的工作经验,以及在不同的公司、国家和领域的沉淀,使他成长为一名开发人员和技术架构师。他使用的技术包括云计算、机器学习、增强现实、无服务器应用程序、微服务等,但他的爱仍然是Java。
  
  艾德里安·伊恩库列斯库(Adrian Ianculescu),一名拥有20年编程经验的软件开发人员,其中12年使用Java。他在2-40人的团队中工作,他意识到开发软件不仅仅是编写代码,而对以不同的方法和框架设计软件和架构产生了兴趣。在公司工作一段时间之后,他开始转变为自由职业者和企业家,以追随他童年时代的梦想——制作游戏。
  
  路西安-保罗·托尔耶(Lucian-Paul Torje),一位有抱负的软件工匠,在软件行业工作了近15年,几乎对所有与技术有关的事情都感兴趣,这就是他涉猎广泛的原因,包括从MS-DOSTSR到微服务,从Atmel微控制器到Android、iOS和Chromebook,从C/C++到Java,从Oracle到MongoDB。
  
  张小坤,软件开发工程师、项目经理、系统架构师,毕业于北京理工大学软件学院,长期从事系统设计开发工作,经验丰富,对设计模式有深刻的认识和理解。
  
  黄凯,系统架构师,毕业于北京理工大学软件学院,一直从事软件研发工作,对设计模式与实际开发中的应用具有较为丰富的经验。
  
  贺涛,高级软件工程师、项目经理,长期致力于系统设计和应用研发工作,实践经验丰富。
编辑推荐
对于开发人员来说,掌握设计模式有助于提高代码质量,促进代码重用,增强架构健壮性。随着编程语言的不断发展,新特性层出不穷,在其被广泛使用前,程序员往往需要花费大量时间去理解和掌握。本书的目的就是降低新技术趋势的接受难度,为程序员提供良好的应用实践。
本书向你展示Java语言中更加智能化的编码实例。书中首先介绍面向对象编程(OOP)和函数式编程(FP)范式,然后描述常用设计模式的经典使用方法,并解释如何利用函数式编程特性改变经典的设计模式。
你将学习混合使用OOP和FP的实现方式,然后学习响应式编程模型——一种为了编写更好的代码而将OOP和FP结合使用的方法。之后,本书将介绍从MVC架构向微服务和无服务器架构转变的发展趋势,*后介绍Java新版本的功能特性及其实践。
通过本书的学习,你可以有效地解决开发应用程序过程中的常见问题,能够轻松地应对各种规模项目的扩展和维护。具体包括:
? ● 理解面向对象编程和函数式编程范式
? ● 探究传统Java设计模式的使用方式
? ● 了解Java的新功能特性及其对经典设计模式的影响
? ● 了解响应式编程及其作为增强版的函数式编程的原因
? ● 应用响应式编程模式并探寻其解决常见问题的好方法
? ● 了解架构的发展趋势和从MVC架构到无服务器应用架构的转变
? ● 应用Java的新功能特性及其实践
前言
借助设计模式,开发者可以改进代码库,提高代码可重用性,并使技术架构更加健壮。随着编程语言的不断发展,新的语言特性在得到广泛应用之前往往需要大量时间去理解。本书旨在降低接受最新趋势的难度,为开发人员提供良好的实例。
本书的目标读者
本书适用于每一位有意愿编写高质量代码的Java开发人员。本书讲述了很多开发者在编码时经常疏忽的最佳实践。书中涵盖了许多设计模式,这些设计模式经开发团队实践和测试过,是用来解决特定问题的最佳方案。
本书内容
第1章介绍了Java语言不同的编程范式。
第2章介绍了多种设计模式中的创建型模式,讲述了多种类型的创建型设计模式。
第3章介绍了行为型设计模式,主要解析了多种用来管理代码和对象行为的设计模式。
第4章介绍了结构型设计模式,详细解析了用于管理对象结构的设计模式。
第5章向读者介绍了函数式编程及与之相关的设计模式。
第6章通过实例介绍了响应式编程及其Java实现。
第7章进一步探索了响应式编程的核心内容及与之相关的设计模式。
第8章从MVC架构到微服务和无服务器应用,探索了近年来开发者尝试和测试过的多种架构模式。
第9章介绍了Java的历史、最佳实践和最新版Java中的更新,并在最后表达了作者对Java未来的期待。
如何充分利用本书
拥有Java开发经验者将能从本书中获益良多,推荐读者在阅读过程中探索并充分实践各章中提供的示例代码。
下载示例代码及彩色图像
本书的示例代码及所有截图和图表,可以从http://wwwpacktpubcom通过个人账号下载,也可以访问华章图书官网http://wwwhzbookcom,通过注册并登录个人账号下载。
目录
译者序
前言
关于作者
关于评审者
第1章 从面向对象到函数式编程 1
11 Java简介 1
12 Java编程范式 2
121 命令式编程 2
122 面向对象编程 3
123 声明式编程 6
124 函数式编程 6
13 流以及集合的使用 7
14 统一建模语言简介 8
15 设计模式和原则 11
151 单一职责原则 12
152 开闭原则 13
153 里氏替换原则 13
154 接口隔离原则 14
155 依赖倒置原则 16
16 总结 16
第2章 创建型模式 18
21 单例模式 18
211 同步锁单例模式 19
212 拥有双重校验锁机制的同步锁单例模式 20
213 无锁的线程安全单例模式 21
214 提前加载和延迟加载 21
22 工厂模式 22
221 简单工厂模式 22
222 工厂方法模式 25
223 抽象工厂模式 27
224 简单工厂、工厂方法与抽象工厂模式之间的对比 28
23 建造者模式 29
231 汽车建造者样例 30
232 简化的建造者模式 32
233 拥有方法链的匿名建造者 32
24 原型模式 33
25 对象池模式 34
26 总结 36
第3章 行为型模式 37
31 责任链模式 38
32 命令模式 40
33 解释器模式 43
34 迭代器模式 47
35 观察者模式 50
36 中介者模式 51
37 备忘录模式 53
38 状态模式 55
39 策略模式 55
310 模板方法模式 56
311 空对象模式 57
312 访问者模式 58
313 总结 59
第4章 结构型模式 60
41 适配器模式 61
42 代理模式 66
43 装饰器模式 70
44 桥接模式 73
45 组合模式 76
46 外观模式 79
47 享元模式 83
48 总结 88
第5章 函数式编程 89
51 函数式编程简介 89
511 lambda表达式 91
512 纯函数 92
513 引用透明性 92
514 初等函数 93
515 高阶函数 93
516 组合 93
517 柯里化 93
518 闭包 94
519 不可变性 95
5110 函子 95
5111 单子 96
52 Java中的函数式编程 97
521 lambda表达式 97
522 流 98
53 重新实现面向对象编程设计模式 102
531 单例模式 102
532 建造者模式 102
533 适配器模式 103
534 装饰器模式 103
535 责任链模式 103
536 命令模式 104
537 解释器模式 104
538 迭代器模式 104
539 观察者模式 105
5310 策略模式 105
5311 模板方法模式 105
54 函数式设计模式 106
541 MapReduce 106
542 借贷模式 107
543 尾调用优化 108
544 记忆化 109
545 执行around方法 110
55 总结 111
第6章 响应式编程 112
61 什么是响应式编程 113
62 RxJava简介 114
63 安装RxJava 115
631 Maven下的安装 115
632 JShell下的安装 116
64 Observable、Flowable、Observer和Subscription的含义 116
65 创建Observable 118
651 create操作符 118
652 defer操作符 119
653 empty操作符 120
654 from操作符 120
655 interval操作符 120
656 timer操作符 121
657 range操作符 121
658 repeat操作符 121
66 转换Observable 122
661 subscribe操作符 122
662 buffer操作符 122
663 flatMap操作符 122
664 groupBy操作符 124
665 map操作符 124
666 scan操作符 125
667 window操作符 125
67 过滤Observable 125
671 debounce操作符 125
672 distinct操作符 126
673 elementAt操作符 126
674 f?ilter操作符 127
675 f?irst/last操作符 127
676 sample操作符 128
677 skip操作符 128
678 take操作符 128
68 组合Observable 128
681 combine操作符 129
682 join操作符 129
683 merge操作符 130
684 zip操作符 131
69 异常处理 131
691 catch操作符 131
692 do操作符 132
693 using操作符 133
694 retry操作符 133
610 线程调度器 134
611 Subject 135
612 示例项目 136
613 总结 139
第7章 响应式设计模式 140
71 响应模式 140
711 请求-响应模式 140
712 异步通信模式 146
713 缓存模式 148
714 扇出与最快响应模式 149
715 快速失败模式 150
72 弹性模式 150
721 断路器模式 150
722 故障处理模式 151
723 有限队列模式 151
724 监控模式 152
725 舱壁模式 152
73 柔性模式 152
731 单一职责模式 153
732 无状态服务模式 154
733 自动伸缩模式 156
734 自包含模式 156
74 消息驱动通信模式 157
741 事件驱动通信模式 157
742 出版者-订阅者模式 157
743 幂等性模式 158
75 总结 158
第8章 应用架构的发展趋势 159
81 什么是应用架构 159
82 分层架构 160
821 分层架构示例 162
822 tier和layer的区别 1