Relearning Java Design Patterns
Tags
Summary
Editor's review
Who it's for
A good fit for
- Junior to mid-level developers with some Java foundation who want to improve code maintainability and extensibility
- Engineers working on complex business systems such as trading, marketing, or middleware
- Computer science students who have studied object-oriented design and basic design patterns and need real-world cases
Not a good fit for
- Absolute beginners with no Java syntax foundation
- Developers focused only on front-end or non-Java stacks who do not work with server-side design
Reading tips
- Read chapters in business-scenario order; after each pattern, close the book and redraw the class structure diagram yourself
- Reproduce the code structures locally from the book's cases, focusing on how patterns respond to requirement changes
- Save the DDD and middleware design chapters for a second read, and compare them with your own project architecture
About the publisher
The Publishing House of Electronics Industry is a comprehensive publisher distinguished by its focus on electronic information and related fields. Judging from the more than 3,000 titles in its catalogue, its publishing covers programming and design, artificial intelligence, computer science, finance and economics, photography, and social sciences, attending both to cutting-edge technology and to general readers. Representative titles include Factor Investing: Methods and Practice, x86 Assembly Language: From Real Mode to Protected Mode, The RISC-V Reader, Artificial Intelligence: Speech Recognition, Understanding and Practice, Phased Array Radar Technology, Radar Target Characteristics, and 100 Go Mistakes and How to Avoid Them, most of which centre on technical methods and engineering practice. Its authors include Shi Chuan, Li Zhong, Wang Xiaobo, David Patterson, Andrew Waterman, and Yu Zihao, among others from China and abroad. Owing to limited public information, no further publishing features are elaborated here.
Contents
- 版权信息
- 作者介绍
- 内容简介
- 推荐语
- 前言
- 第1章 设计模式介绍
- 1.1 设计模式是什么
- 1.2 谁发明了设计模式
- 1.3 设计模式有哪些种类
- 1.4 该如何学习设计模式
- 第2章 六大设计原则
- 2.1 单一职责原则
- 2.2 开闭原则
- 2.3 里氏替换原则
- 2.4 迪米特法则原则
- 2.5 接口隔离原则
- 2.6 依赖倒置原则
- 第3章 设计模式如何落地
- 3.1 设计模式该怎样学
- 3.2 为什么使用设计模式
- 3.3 设计模式的落地经验
- 第4章 工厂模式
- 4.1 码农心得
- 4.2 工厂模式介绍
- 4.3 模拟发放多种奖品
- 4.4 违背设计模式实现
- 4.5 工厂模式重构代码
- 4.6 本章总结
- 第5章 抽象工厂模式
- 5.1 码农心得
- 5.2 抽象工厂模式介绍
- 5.3 缓存集群升级场景
- 5.4 违背设计模式实现
- 5.5 抽象工厂模式重构代码
- 5.6 本章总结
- 第6章 建造者模式
- 6.1 码农心得
- 6.2 建造者模式介绍
- 6.3 装修套餐选配场景
- 6.4 违背设计模式实现
- 6.5 建造者模式重构代码
- 6.6 本章总结
- 第7章 原型模式
- 7.1 码农心得
- 7.2 原型模式介绍
- 7.3 试卷题目乱序场景
- 7.4 违背设计模式实现
- 7.5 原型模式重构代码
- 7.6 本章总结
- 第8章 单例模式
- 8.1 码农心得
- 8.2 单例模式介绍
- 8.3 案例场景介绍
- 8.4 七种单例模式实现方式
- 8.5 本章总结
- 第9章 适配器模式
- 9.1 码农心得
- 9.2 适配器模式介绍
- 9.3 MQ消息体兼容场景
- 9.4 违背设计模式实现
- 9.5 适配器模式重构代码
- 9.6 本章总结
- 第10章 桥接模式
- 10.1 码农心得
- 10.2 桥接模式介绍
- 10.3 多支付和多模式组合场景
- 10.4 违背设计模式实现
- 10.5 桥接模式重构代码
- 10.6 本章总结
- 第11章 组合模式
- 11.1 码农心得
- 11.2 组合模式介绍
- 11.3 决策树场景模拟
- 11.4 违背设计模式实现
- 11.5 组合模式重构代码
- 11.6 本章总结
- 第12章 装饰器模式
- 12.1 码农心得
- 12.2 装饰器模式介绍
- 12.3 单点登录场景模拟
- 12.4 违背设计模式实现
- 12.5 装饰器模式重构代码
- 12.6 本章总结
- 第13章 外观模式
- 13.1 码农心得
- 13.2 外观模式介绍
- 13.3 中间件场景模拟
- 13.4 违背设计模式实现
- 13.5 外观模式重构代码
- 13.6 重构后工程验证
- 13.7 本章总结
- 第14章 享元模式
- 14.1 码农心得
- 14.2 享元模式介绍
- 14.3 缓存优化查询场景
- 14.4 违背设计模式实现
- 14.5 享元模式重构代码
- 14.6 本章总结
- 第15章 代理模式
- 15.1 码农心得
- 15.2 代理模式介绍
- 15.3 MyBatis-Spring中代理类场景
- 15.4 代理类模式实现过程
- 15.5 本章总结
- 第16章 责任链模式
- 16.1 码农心得
- 16.2 责任链模式介绍
- 16.3 系统上线审批场景
- 16.4 违背设计模式实现
- 16.5 责任链模式重构代码
- 16.6 本章总结
- 第17章 命令模式
- 17.1 码农心得
- 17.2 命令模式介绍
- 17.3 餐厅点餐场景
- 17.4 违背设计模式实现
- 17.5 命令模式重构代码
- 17.6 本章总结
- 第18章 迭代器模式
- 18.1 码农心得
- 18.2 迭代器模式介绍
- 18.3 组织架构树形结构遍历场景
- 18.4 迭代器模式遍历组织结构
- 18.5 本章总结
- 第19章 中介者模式
- 19.1 码农心得
- 19.2 中介者模式介绍
- 19.3 手写ORM中间件场景
- 19.4 违背设计模式实现
- 19.5 中介者模式开发ORM框架
- 19.6 ORM框架测试
- 19.7 本章总结
- 第20章 备忘录模式
- 20.1 码农心得
- 20.2 备忘录模式介绍
- 20.3 系统上线配置回滚场景
- 20.4 备忘录模式记录系统配置
- 20.5 本章总结
- 第21章 观察者模式
- 21.1 码农心得
- 21.2 观察者模式介绍
- 21.3 小客车摇号通知场景
- 21.4 违背设计模式实现
- 21.5 观察者模式重构代码
- 21.6 本章总结
- 第22章 状态模式
- 22.1 码农心得
- 22.2 状态模式介绍
- 22.3 活动审批状态流转场景
- 22.4 违背设计模式实现
- 22.5 状态模式重构代码
- 22.6 本章总结
- 第23章 策略模式
- 23.1 码农心得
- 23.2 策略模式介绍
- 23.3 各类营销优惠券场景
- 23.4 违背设计模式实现
- 23.5 策略模式重构代码
- 23.6 本章总结
- 第24章 模板模式
- 24.1 码农心得
- 24.2 模板模式介绍
- 24.3 模拟爬虫商品生成海报信息场景
- 24.4 模板模式案例工程
- 24.5 本章总结
- 第25章 访问者模式
- 25.1 码农心得
- 25.2 访问者模式介绍
- 25.3 不同用户对学生身份访问视角场景
- 25.4 访问者模式案例工程
- 25.5 本章总结
- 第26章 DDD四层架构实践
- 26.1 领域驱动设计介绍
- 26.2 商品下单规则场景
- 26.3 规则树DDD四层架构
- 26.4 测试验证
- 26.5 本章总结
- 第27章 RPC中间件设计开发
- 27.1 RPC介绍
- 27.2 案例目标
- 27.3 Spring自定义配置文件
- 27.4 Netty通信组件
- 27.5 RPC功能逻辑实现
- 27.6 RPC框架验证
- 27.7 本章总结
- 第28章 分布式领域驱动架构设计
- 28.1 关于需求
- 28.2 实践场景
- 28.3 架构设计
- 28.4 父类工程
- 28.5 分布式框架
- 28.6 本章总结
FAQ
Can Java beginners read this book directly?
Can the cases in the book be used directly in real projects?
How much of the book is devoted to DDD?
Do the animated illustrations help in understanding design patterns?
Comments
Find this book
This site is an index: you start “Search all sources” in your browser, and the entries it lists all point to third-party sites; please judge their availability yourself.
About the author
Fu Zhengwei is an author whose publicly available information is limited; at present, only the representative work Relearning Java Design Patterns is known. Judging from the title, the book is aimed at Java developers and takes design patterns as its entry point, emphasizing a fresh review and mastery of classic design patterns in programming practice. Its common category is programming design, indicating that the book is technical writing oriented toward engineering practice and code design. Design patterns are a fundamental topic in object-oriented development, and books on this subject generally need to combine theoretical explanation with example demonstrations to help readers understand the applicable scenarios and trade-offs behind each pattern. Given the limited biographical information about the author, readers should focus on the work itself: it is suitable for developers who wish to consolidate their foundation in design patterns and deepen their understanding through the Java language, and it can also serve as a reference during the study of programming design.