新書推薦:
《
形似神异:什么是中日传统政治文化的结构性差异
》
售價:HK$
55.8
《
养育不好惹的小孩
》
售價:HK$
77.3
《
加加美高浩的手部绘画技法 II
》
售價:HK$
89.4
《
卡特里娜(“同一颗星球”丛书)
》
售價:HK$
87.4
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:HK$
188.2
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:HK$
132.2
《
《日本文学史序说》讲演录
》
售價:HK$
72.8
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:HK$
99.7
|
編輯推薦: |
本书是一本动手实战的技术图书,主要介绍设计模式解决方案的具体落地方法。
本书从互联网实际的业务开发中遴选出大量的真实案例场景,包括交易、营销、秒杀等,并结合规则引擎、中间件、框架源码和RPC设计等技术点介绍设计模式,帮助开发人员在实际的业务中灵活运用设计模式。
本书通过有趣的例子,配合精美插画,结合实战案例讲解,有良好的阅读体验!
基于自己多年的经验撰写,没有晦涩难懂的理论说教,深入浅出地讲解设计模式精髓。
跟着小傅哥学设计模式,从容应对复杂变化的业务需求,写出易维护、可扩展的代码结构!
|
內容簡介: |
本书是一本基于互联网真实案例编写的Java设计模式实践图书。全书以解决方案为核心,从实际开发业务中抽离出交易、营销、规则引擎、中间件、框架源码等22个真实场景,对设计模式进行全面、彻底的分析。帮助读者灵活地使用各种设计模式,从容应对复杂变化的业务需求,编写出易维护、可扩展的代码结构。本书融合了生动有趣的动画插图和实践开发的类结构图,让读者不仅能体会设计模式的概念和原理,更能清楚地知晓落地方法。此外,本书还介绍了DDD四层架构、RPC中间件设计、分布式领域驱动设计和设计模式的结合使用等内容。本书适合计算机相关行业的研发人员、高等院校计算机专业的学生阅读。无论是初学者,还是中、高级研发人员都能从本书中有所获益。
|
關於作者: |
付政委(小傅哥),一线互联网 Java 工程师、架构师,开发过交易、营销类项目,实现过运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地有丰富的经验。在热衷于Java语言的同时,也喜欢研究中继器、I/O板卡、C#和PHP,是一个技术活跃的折腾者。常逛GitHub,乐于分享技术文章。
沉淀、分享、成长,让自己和他人都能有所收获!
|
目錄:
|
目录
第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打开。
致谢
首先要特别感谢我的父母(付井海、徐文杰)、妻子(郭维清),是你们在平常的生活中分担了更多,才让我有更多的时间投入文字创作中,使得这本书与广大读者见面。
在电子工业出版社博文视点的宋亚东编辑的热情推动下,促成了我与电子工业出版社的合作。感谢电子工业出版社博文视点对本书的重视,以及为本书出版所做的一切。
由于作者水平有限,书中不足之处在所难免,敬请专家和读者给予批评指正。
付政委(小傅哥)
|
|