重学Java设计模式pdf下载pdf下载

重学Java设计模式百度网盘pdf下载

作者:
简介:本篇主要提供重学Java设计模式pdf下载
出版社:电子工业出版社
出版时间:2021-05
pdf下载价格:9.00¥


预览


内容介绍

产品特色


编辑推荐

适读人群 :计算机相关行业的研发人员、高等院校计算机专业的学生

本书是一本动手实战的技术图书,主要介绍设计模式解决方案的具体落地方法。

本书从互联网实际的业务开发中遴选出大量的真实案例场景,包括交易、营销、秒杀等,并结合规则引擎、中间件、框架源码和RPC设计等技术点介绍设计模式,帮助开发人员在实际的业务中灵活运用设计模式。

本书通过有趣的例子,配合精美插画,结合实战案例讲解,有良好的阅读体验!

基于自己多年的经验撰写,没有晦涩难懂的理论说教,深入浅出地讲解设计模式精髓。

跟着小傅哥学设计模式,从容应对复杂变化的业务需求,写出易维护、可扩展的代码结构!


内容简介

本书是一本基于互联网真实案例编写的Java设计模式实践图书。全书以解决方案为核心,从实际开发业务中抽离出交易、营销、规则引擎、中间件、框架源码等22个真实场景,对设计模式进行全面、彻底的分析。帮助读者灵活地使用各种设计模式,从容应对复杂变化的业务需求,编写出易维护、可扩展的代码结构。本书融合了生动有趣的动画插图和实践开发的类结构图,让读者不仅能体会设计模式的概念和原理,更能清楚地知晓落地方法。此外,本书还介绍了DDD四层架构、RPC中间件设计、分布式领域驱动设计和设计模式的结合使用等内容。

本书适合计算机相关行业的研发人员、高等院校计算机专业的学生阅读。无论是初学者,还是中、高级研发人员都能从本书中有所获益。


作者简介

付政委(小傅哥)


一线互联网 Java 工程师、架构师,开发过交易、营销类项目,实现过运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地有丰富的经验。在热衷于Java语言的同时,也喜欢研究中继器、I/O板卡、C#和PHP,是一个技术活跃的折腾者。常逛GitHub,乐于分享技术文章。

沉淀、分享、成长,让自己和他人都能有所收获!


精彩书评

本书从六大设计原则入手,警示我们在日常开发过程中需要注意代码的编写原则。同时,本书列举了大量生动形象的例子,在遇到相关业务场景时可以把代码写得非常漂亮。原则既是规范,也是日常开发过程中要遵守的约定;设计模式是在业务场景下能够使用的工具。遵守原则并在合适的场景下用合适的工具,你的代码将无懈可击!


cxuan

微信公众号“程序员cxuan”作者


软件开发中有一个概念叫作“软件复用”。简单来说,软件复用是指在构建一个新的软件时,不需要从零开始,而是通过复用已有的一些框架、第三方库、设计模式和设计原则等现成的物料,快速地构建出来。

软件复用需要设计模式的帮助。在软件开发中,设计模式可以通过封装变化来提高代码的可扩展性和可维护性。

在平时的业务开发中,如果不会设计模式,或许也可以完成项目的功能需求。但是,单纯的增删改查多没意思啊?我们要思考如何写出质量更高的业务代码。另外,Spring、MyBatis等框架也大量使用了设计模式,如果想厘清它们的原理,设计模式则是必备利器。但设计模式不是“银弹”,不要为了用设计模式而用设计模式。

《重学 Java 设计模式》系列文章的第一篇就成功地把我吸引了,我也是从这个系列文章开始关注小傅哥的。

市面上有关设计模式的书已经有很多了,但还是缺少让人眼前一亮的作品。本书通过有趣的例子,配合形象的图片,结合实战案例讲解设计模式的方式妙极了!文中的每一个细节无不透露着作者的用心。

其实每一种设计模式都不难理解,不光需要我们再学习,最重要的是要不断地实践。如果你细心思考并实践本书中的每一个案例,那么对设计模式的理解一定会更上一层楼!


Guide哥

GitHub开源项目JavaGuide作者


很久之前看到过一本关于设计模式的电子书,当时看了内容就觉得总结得很棒,如今终于出版了。虽然设计模式晦涩难懂,但作者基于自己多年的经验,将这些知识深入浅出地讲解了出来,实在难得,适合每一位开发者学习。


Hollis

《程序员的三门课》联合作者,微信公众号“Hollis”作者


本书基于互联网真实案例编写,通过交易、营销、规则引擎和中间件等多个场景的设计和开发,让读者对设计模式有全面、彻底的认识,帮助读者灵活地使用各种设计模式。


敖丙

微信公众号“三太子敖丙”作者


设计模式是程序员的基本功,看似用不到,却可以在无形之中增加我们对框架和功能的理解深度。如何灵活地组织代码,将复杂的业务模块解耦?如何抽象出可复用的代码框架?本书结合实际场景和代码实现,深入浅出地讲解设计模式,对于想要提升编程内功的小伙伴来说很有帮助。


付东来

IT图书《labuladong的算法小抄》作者


无论为了应对面试,还是为了提高代码质量,抑或是为了读懂源码,设计模式都是必须掌握的。和市面上大多数图书不同的是,本书作者通过大量的真实案例,从 0 到 1 带领读者体验设计模式之美。无论你之前是否学过设计模式,本书都值得一读。


帅地

微信公众号“帅地玩编程” 作者


掌握设计模式,对每一位开发者都是至关重要的。本书通过大量真实的业务开发案例,结合诸多常用的框架源码,生动形象地讲述了各种设计模式的思想和应用,非常值得阅读!

魏梦舒,微信公众号“程序员小灰”运营者,《漫画算法:小灰的算法之旅》系列图书作者

项目会迭代和发展,随之代码量也会越来越庞大。代码是否易于维护和理解,显得尤为重要。要实现这一目标,离不开设计模式的灵活运用,本书讲的就是这项重要技能。


小林coding

微信公众号“小林coding”作者


《敏捷软件开发》和《设计模式:可复用面向对象软件的基础》这两本书,我刚毕业的时候读了不下十几遍,每读一遍都有不同的感受,当时也没有很多解读这方面的书,只能硬啃。原则提供了做事情的标准和指导思想,模式提供了特定场景的解决方案,其更高层的意义是我们沟通的语言,降低沟通的成本。本书从作者实际业务出发,总结了真实场景的应用案例,可以更好地活学活用,接地气地应用设计模式。


张开涛

《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》作者


目录

目录

第1章 设计模式介绍 / 1

1.1 设计模式是什么 / 1

1.2 谁发明了设计模式 / 1

1.3 设计模式有哪些种类 / 2

1.4 该如何学习设计模式 / 2

第2章 六大设计原则 / 4

2.1 单一职责原则 / 4

2.2 开闭原则 / 8

2.3 里氏替换原则 / 11

2.4 迪米特法则原则 / 21

2.5 接口隔离原则 / 26

2.6 依赖倒置原则 / 30

第3章 设计模式如何落地 / 36

3.1 设计模式该怎样学 / 36

3.2 为什么使用设计模式 / 36

3.3 设计模式的落地经验 / 37

第4章 工厂模式 / 39

4.1 码农心得 / 39

4.2 工厂模式介绍 / 39

4.3 模拟发放多种奖品 / 40

4.4 违背设计模式实现 / 42

4.5 工厂模式重构代码 / 46

4.6 本章总结 / 52

第5章 抽象工厂模式 / 53

5.1 码农心得 / 53

5.2 抽象工厂模式介绍 / 53

5.3 缓存集群升级场景 / 55

5.4 违背设计模式实现 / 59

5.5 抽象工厂模式重构代码 / 62

5.6 本章总结 / 68

第6章 建造者模式 / 69

6.1 码农心得 / 69

6.2 建造者模式介绍 / 69

6.3 装修套餐选配场景 / 70

6.4 违背设计模式实现 / 76

6.5 建造者模式重构代码 / 79

6.6 本章总结 / 85

第7章 原型模式 / 86

7.1 码农心得 / 86

7.2 原型模式介绍 / 86

7.3 试卷题目乱序场景 / 87

7.4 违背设计模式实现 / 89

7.5 原型模式重构代码 / 96

7.6 本章总结 / 106

第8章 单例模式 / 107

8.1 码农心得 / 107

8.2 单例模式介绍 / 107

8.3 案例场景介绍 / 108

8.4 七种单例模式实现方式 / 108

8.5 本章总结 / 112

第9章 适配器模式 / 113

9.1 码农心得 / 113

9.2 适配器模式介绍 / 113

9.3 MQ消息体兼容场景 / 115

9.4 违背设计模式实现 / 118

9.5 适配器模式重构代码 / 119

9.6 本章总结 / 125

第10章 桥接模式 / 126

10.1 码农心得 / 126

10.2 桥接模式介绍 / 126

10.3 多支付和多模式组合 场景 / 127

10.4 违背设计模式实现 / 128

10.5 桥接模式重构代码 / 130

10.6 本章总结 / 135

第11章 组合模式 / 137

11.1 码农心得 / 137

11.2 组合模式介绍 / 137

11.3 决策树场景模拟 / 138

11.4 违背设计模式实现 / 139

11.5 组合模式重构代码 / 141

11.6 本章总结 / 153

第12章 装饰器模式 / 154

12.1 码农心得 / 154

12.2 装饰器模式介绍 / 154

12.3 单点登录场景模拟 / 155

12.4 违背设计模式实现 / 157

12.5 装饰器模式重构代码 / 158

12.6 本章总结 / 162

第13章 外观模式 / 163

13.1 码农心得 / 163

13.2 外观模式介绍 / 163

13.3 中间件场景模拟 / 164

13.4 违背设计模式实现 / 166

13.5 外观模式重构代码 / 167

13.6 重构后工程验证 / 173

13.7 本章总结 / 175

第14章 享元模式 / 176

14.1 码农心得 / 176

14.2 享元模式介绍 / 176

14.3 缓存优化查询场景 / 177

14.4 违背设计模式实现 / 178

14.5 享元模式重构代码 / 179

14.6 本章总结 / 184

第15章 代理模式 / 185

15.1 码农心得 / 185

15.2 代理模式介绍 / 185

15.3 MyBatis-Spring中代理类 场景 / 186

15.4 代理类模式实现过程 / 187

15.5 本章总结 / 192

第16章 责任链模式 / 193

16.1 码农心得 / 193

16.2 责任链模式介绍 / 193

16.3 系统上线审批场景 / 194

16.4 违背设计模式实现 / 196

16.5 责任链模式重构代码 / 198

16.6 本章总结 / 204

第17章 命令模式 / 205

17.1 码农心得 / 205

17.2 命令模式介绍 / 205

17.3 餐厅点餐场景 / 206

17.4 违背设计模式实现 / 207

17.5 命令模式重构代码 / 209

17.6 本章总结 / 214

第18章 迭代器模式 / 215

18.1 码农心得 / 215

18.2 迭代器模式介绍 / 215

18.3 组织架构树形结构遍历 场景 / 216

18.4 迭代器模式遍历组织 结构 / 217

18.5 本章总结 / 224

第19章 中介者模式 / 225

19.1 码农心得 / 225

19.2 中介者模式介绍 / 225

19.3 手写ORM中间件场景 / 226

19.4 违背设计模式实现 / 227

19.5 中介者模式开发ORM框架 / 228

19.6 ORM框架测试 / 236

19.7 本章总结 / 241

第20章 备忘录模式 / 242

20.1 码农心得 / 242

20.2 备忘录模式介绍 / 242

20.3 系统上线配置回滚场景 / 243

20.4 备忘录模式记录系统 配置 / 244

20.5 本章总结 / 249

第21章 观察者模式 / 250

21.1 码农心得 / 250

21.2 观察者模式介绍 / 250

21.3 小客车摇号通知场景 / 252

21.4 违背设计模式实现 / 253

21.5 观察者模式重构代码 / 255

21.6 本章总结 / 260

第22章 状态模式 / 261

22.1 码农心得 / 261

22.2 状态模式介绍 / 261

22.3 活动审批状态流转场景 / 263

22.4 违背设计模式实现 / 266

22.5 状态模式重构代码 / 269

22.6 本章总结 / 277

第23章 策略模式 / 278

23.1 码农心得 / 278

23.2 策略模式介绍 / 278

23.3 各类营销优惠券场景 / 279

23.4 违背设计模式实现 / 280

23.5 策略模式重构代码 / 281

23.6 本章总结 / 286

第24章 模板模式 / 287

24.1 码农心得 / 287

24.2 模板模式介绍 / 287

24.3 模拟爬虫商品生成海报信息 场景 / 288

24.4 模板模式案例工程 / 289

24.5 本章总结 / 295

第25章 访问者模式 / 296

25.1 码农心得 / 296

25.2 访问者模式介绍 / 296

25.3 不同用户对学生身份访问 视角场景 / 297

25.4 访问者模式案例工程 / 298

25.5 本章总结 / 304

第26章 DDD四层架构实践 / 305

26.1 领域驱动设计介绍 / 305

26.2 商品下单规则场景 / 308

26.3 规则树DDD四层架构 / 309

26.4 测试验证 / 316

26.5 本章总结 / 321

第27章 RPC中间件设计开发 / 322

27.1 RPC介绍 / 322

27.2 案例目标 / 324

27.3 Spring自定义配置文件 / 324

27.4 Netty通信组件 / 333

27.5 RPC功能逻辑实现 / 340

27.6 RPC框架验证 / 347

27.7 本章总结 / 352

第28章 分布式领域驱动架构 设计 / 353

28.1 关于需求 / 353

28.2 实践场景 / 354

28.3 架构设计 / 354

28.4 父类工程 / 355

28.5 分布式框架 / 358

28.6 本章总结 / 367


前言/序言

前言

设计模式的概念最早是由克里斯托弗·亚历山大在其所著的《建筑模式语言》中提出的。该书介绍了城市设计的“语言”,提供了253个描述城镇、邻里、住宅、花园、房间及西部构造的模式,而此类“语言”的基本单元就是模式。后来,埃里克·伽玛、约翰·威利斯迪斯、拉尔夫·约翰逊和理查德·赫尔姆四位作者接受了设计模式的概念。1994年,他们出版了《设计模式:可复用面向对象软件的基础》一书,将设计模式的概念应用到程序开发领域中。

可以看出,设计模式本身是一种通用场景的解决标准和方案,而不是实际场景开发落地的指导手册。这种通用的解决标准和方案是研发人员在大量的项目中验证和提炼的结果,如果只是学习理论知识,没有经历过大型的项目开发,则很难理解和使用设计模式。


为什么写作本书

很多研发人员了解过设计模式,但在实际的业务开发中却很少使用。甚至使用了大量的if…else实现业务流程,对于一次次的需求迭代和逻辑补充,靠东拼西凑疲于应付。如何掌握和使用设计模式的思想和架构思维,并行之有效地运用到业务场景中,具有现实意义。为了让更多的研发人员不仅能掌握设计模式的概念,而且可以将设计模式运用到实际开发中,特撰写此书。


本书主要内容

本书通过从互联网实际的业务开发中遴选出大量的真实案例场景,包括交易、营销、秒杀等,并结合规则引擎、中间件、框架源码和RPC设计等技术点介绍设计模式,帮助开发人员在实际的业务中灵活运用设计模式。

本书共28章,主要内容如下:

-第1~3章,介绍设计模式的原则及落地方法,让读者在学习之前对设计模式有整体的认识。

-第4~25章,分别通过场景案例讲解设计模式的使用方法,包括多种奖品服务工厂、在线试卷题目混排、MQ消息体字段适配、多支付渠道场景桥接、差异化规则引擎组合、ORM中间件设计等。

-第26~28章,扩展知识,介绍领域驱动设计四层架构、RPC中间件设计开发和分布式领域驱动架构设计,帮助读者对设计模式和架构设计有整体的认识。


如何阅读本书

本书是一本偏动手实战的技术图书,主要介绍设计模式解决方案的具体落地方法。本书的每一章都会重点突出与该章主题相关的设计模式。同时,由于每一种设计模式都不是孤立存在的,需要结合使用,所以应在具体的项目场景中灵活运用。在阅读的过程中,读者不仅要仔细阅读每一章的文字及案例场景设计,同时更要多阅读代码,或者自己编写代码。


代码运行环境

- JDK v1.8及以上。

- Maven v3.0及以上。

- IDEA版本:IntelliJ IDEA 2018、2019、2020。

- 其他版本:Spring、SpringBoot、MyBatis等已经配置到POM文件中。


源码使用方法

本书配套源码的GitHub地址为https://github.com/fuzhengwei/CodeDesign。此源码会不断接受反馈并更新。Gitee 地址为 https://gitee.com/fustack/CodeDesign。

- 每一章涉及的代码工程结构与源码部分都有相应的名称。例如,cn-bustack- design-7-01,7-01表示第7章第1个案例的源码。

- 源码中的标号的第一个数字代表章节。例如,4.0-0、4.0-1、4.0-2表示第4章的多个源码,在构建过程中需要注意,它们之间会有引用关系。

- 第28章因为涉及的工程内容是独立的,所以单独提供了一个压缩包,需要解压缩后再使用IDEA打开。


致谢

首先要特别感谢我的父母(付井海、徐文杰)、妻子(郭维清),是你们在平常的生活中分担了更多,才让我有更多的时间投入文字创作中,使得这本书与广大读者见面。

在电子工业出版社博文视点的宋亚东编辑的热情推动下,促成了我与电子工业出版社的合作。感谢电子工业出版社博文视点对本书的重视,以及为本书出版所做的一切。

由于作者水平有限,书中不足之处在所难免,敬请专家和读者给予批评指正。


付政委(小傅哥)