尚硅谷 Java 设计模式 
 
尚硅谷 Java 设计模式 
尚硅谷-韩顺平 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 I页 
 
尚硅谷 Java 设计模式 
第  1  章  内容介绍和授课方式 ............................................................................................................................................................ 1 
1.1 JAVA 设计模式内容介绍 .............................................................................................................................................................. 1 
1.1.1  先看几个经典的面试题 ........................................................................................................................................ 1 
1.1.2  设计模式的重要性 ................................................................................................................................................ 3 
1.2  课程亮点和授课方式 ................................................................................................................................................................. 4 
第  2  章  设计模式七大原则 ............................................................................................................................................................... 6 
2.1  设计模式的目的 ........................................................................................................................................................................ 6 
2.2  设计模式七大原则 ..................................................................................................................................................................... 6 
2.3  单一职责原则 ............................................................................................................................................................................ 7 
2.3.1  基本介绍 .............................................................................................................................................................. 7 
2.3.2  应用实例 .............................................................................................................................................................. 7 
2.3.3  单一职责原则注意事项和细节 ........................................................................................................................... 12 
2.4  接口隔离原则(INTERFACE SEGREGATION PRINCIPLE) ............................................................................................................................ 12 
2.4.1  基本介绍 ............................................................................................................................................................ 12 
2.4.2  应用实例 ............................................................................................................................................................ 13 
2.4.3  应传统方法的问题和使用接口隔离原则改进 ...................................................................................................... 16 
2.5  依赖倒转原则 .......................................................................................................................................................................... 21 
2.5.1  基本介绍 ............................................................................................................................................................ 21 
2.5.2  应用实例 ............................................................................................................................................................ 21 
2.5.3  依赖关系传递的三种方式和应用案例................................................................................................................. 24 
2.5.4  依赖倒转原则的注意事项和细节 ........................................................................................................................ 28 
2.6  里氏替换原则 .......................................................................................................................................................................... 29 
2.6.1 OO 中的继承性的思考和说明 .............................................................................................................................. 29 
2.6.2  基本介绍 ............................................................................................................................................................ 29 
2.6.3  一个程序引出的问题和思考 ............................................................................................................................... 30 
2.6.4  解决方法 ............................................................................................................................................................ 31 
2.7  开闭原则 ................................................................................................................................................................................. 34 
2.7.1  基本介绍 ............................................................................................................................................................ 34 
2.7.2  看下面一段代码 ................................................................................................................................................. 35 
2.7.3  方式 1 的优缺点 ................................................................................................................................................. 38 
2.7.4  改进的思路分析 ................................................................................................................................................. 38 
2.8  迪米特法则 .............................................................................................................................................................................. 42 
2.8.1  基本介绍 ............................................................................................................................................................ 42 
2.8.2  应用实例 ............................................................................................................................................................ 42 
2.8.3  应用实例改进 ..................................................................................................................................................... 46 
2.8.4  迪米特法则注意事项和细节 ............................................................................................................................... 51 
2.9  合成复用原则(COMPOSITE REUSE PRINCIPLE) ....................................................................................................................... 51 
2.9.1  基本介绍 ............................................................................................................................................................ 51 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页 
 
尚硅谷 Java 设计模式 
2.10  设计原则核心思想 ................................................................................................................................................................. 51 
第  3  章  UML  类图 .......................................................................................................................................................................... 53 
3.1 UML 基本介绍 ......................................................................................................................................................................... 53 
3.2 UML 图 .................................................................................................................................................................................... 54 
3.3 UML 类图 ................................................................................................................................................................................ 55 
3.4  类图—依赖关系(DEPENDENCE) ........................................................................................................................................... 56 
3.5  类图—泛化关系(GENERALIZATION) ........................................................................................................................................ 57 
3.6  类图—实现关系(IMPLEMENTATION) .................................................................................................................................... 58 
3.7  类图—关联关系(ASSOCIATION) ........................................................................................................................................... 59 
3.8  类图—聚合关系(AGGREGATION) ......................................................................................................................................... 59 
3.8.1  基本介绍 ............................................................................................................................................................ 59 
3.8.2  应用实例 ............................................................................................................................................................ 59 
3.9  类图—组合关系(COMPOSITION) .......................................................................................................................................... 60 
3.9.1  基本介绍 ............................................................................................................................................................ 60 
3.9.2  应用案例 ............................................................................................................................................................ 60 
第  4  章  设计模式概述 ..................................................................................................................................................................... 63 
4.1  掌握设计模式的层次 ............................................................................................................................................................... 63 
4.2  设计模式介绍 .......................................................................................................................................................................... 63 
4.3  设计模式类型 .......................................................................................................................................................................... 63 
第  5  章  单例设计模式 ..................................................................................................................................................................... 65 
5.1  单例设计模式介绍 ................................................................................................................................................................... 65 
5.2  单例设计模式八种方式 ........................................................................................................................................................... 65 
5.3  饿汉式(静态常量) ............................................................................................................................................................... 65 
5.4  饿汉式(静态代码块) ........................................................................................................................................................... 67 
5.5  懒汉式(线程不安全) ............................................................................................................................................................................... 69 
5.6  懒汉式(线程安全,同步方法) ............................................................................................................................................................... 71 
5.7  懒汉式(线程安全,同步代码块) ........................................................................................................................................................... 72 
5.8  双重检查 ................................................................................................................................................................................. 73 
5.9  静态内部类 .............................................................................................................................................................................. 75 
5.10  枚举 ....................................................................................................................................................................................... 77 
5.11  单例模式在 JDK  应用的源码分析 ......................................................................................................................................... 78 
5.11.1  单例模式在 JDK  应用的源码分析 .................................................................................................................... 78 
5.12  单例模式注意事项和细节说明 ............................................................................................................................................... 79 
第  6 章  工 厂 模式............................................................................................................................................................................ 80 
6.1  简单工厂模式 .......................................................................................................................................................................... 80 
6.1.1  看一个具体的需求 .............................................................................................................................................. 80 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页 
 
尚硅谷 Java 设计模式 
6.1.2  使用传统的方式来完成 ...................................................................................................................................... 80 
6.1.3  传统的方式的优缺点 .......................................................................................................................................... 82 
6.1.4  基本介绍 ............................................................................................................................................................ 82 
6.1.5  使用简单工厂模式 .............................................................................................................................................. 83 
6.2  工厂方法模式 .......................................................................................................................................................................... 89 
6.2.1  看一个新的需求 ................................................................................................................................................. 89 
6.2.2 思 路 1................................................................................................................................................................................ 89 
6.2.3 思 路 2................................................................................................................................................................................ 89 
6.2.4  工厂方法模式介绍 .............................................................................................................................................. 89 
6.2.5  工厂方法模式应用案例 ...................................................................................................................................... 89 
6.3  抽象工厂模式 .......................................................................................................................................................................... 94 
6.3.1  基本介绍 ............................................................................................................................................................ 94 
6.3.2  抽象工厂模式应用实例 ...................................................................................................................................... 95 
6.4  工厂模式在 JDK-CALENDAR  应用的源码分析 ......................................................................................................................... 99 
6.5  工厂模式小结 ........................................................................................................................................................................ 103 
第  7 章  原 型 模式.......................................................................................................................................................................... 104 
7.1  克隆羊问题 ............................................................................................................................................................................ 104 
7.2  传统方式解决克隆羊问题 ...................................................................................................................................................... 104 
7.3  传统的方式的优缺点 ............................................................................................................................................................. 105 
7.4  原型模式-基本介绍................................................................................................................................................................ 105 
7.5  原型模式原理结构图-UML 类图 ............................................................................................................................................. 106 
7.6  原型模式解决克隆羊问题的应用实例.................................................................................................................................... 106 
7.7  原型模式在 SPRING 框架中源码分析 ..................................................................................................................................... 110 
7.8  深入讨论-浅拷贝和深拷贝 ..................................................................................................................................................... 110 
7.8.1  浅拷贝的介绍 ................................................................................................................................................... 110 
7.8.2  深拷贝基本介绍 ................................................................................................................................................ 111 
7.9  深拷贝应用实例 ..................................................................................................................................................................... 111 
7.10  原型模式的注意事项和细节 ................................................................................................................................................ 116 
第  8  章  建造者模式 .......................................................................................................................................................................118 
8.1  盖房项目需求 ........................................................................................................................................................................ 118 
8.2  传统方式解决盖房需求 ......................................................................................................................................................... 118 
8.3  传统方式的问题分析 ............................................................................................................................................................. 120 
8.4  建造者模式基本介绍 ............................................................................................................................................................. 121 
8.5  建造者模式的四个角色 ......................................................................................................................................................... 121 
8.6  建造者模式原理类图 ............................................................................................................................................................. 121 
8.7  建造者模式解决盖房需求应用实例 ....................................................................................................................................... 122 
8.8  建造者模式在 JDK 的应用和源码分析 .................................................................................................................................. 129 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页 
 
尚硅谷 Java 设计模式 
8.9  建造者模式的注意事项和细节 .............................................................................................................................................. 129 
第  9  章  适配器设计模式 ............................................................................................................................................................... 131 
9.1  现实生活中的适配器例子 ...................................................................................................................................................... 131 
9.2  基本介绍 ............................................................................................................................................................................... 131 
9.3  工作原理 ............................................................................................................................................................................... 131 
9.4  类适配器模式 ........................................................................................................................................................................ 132 
9.4.1  类适配器模式介绍 ............................................................................................................................................ 132 
9.4.2  类适配器模式应用实例 .................................................................................................................................... 132 
9.4.3  类适配器模式注意事项和细节 ......................................................................................................................... 135 
9.5  对象适配器模式 .................................................................................................................................................................... 135 
9.5.1  对象适配器模式介绍 ........................................................................................................................................ 135 
9.5.2  对象适配器模式应用实例 ................................................................................................................................. 136 
9.5.3  对象适配器模式注意事项和细节 ...................................................................................................................... 140 
9.6  接口适配器模式 .................................................................................................................................................................... 140 
9.6.1  接口适配器模式介绍 ........................................................................................................................................ 140 
9.6.2  接口适配器模式应用实例 ................................................................................................................................. 140 
9.7  适配器模式在 SPRINGMVC 框架应用的源码剖析 .................................................................................................................. 144 
9.8  适配器模式的注意事项和细节 .............................................................................................................................................. 146 
第  10 章  桥 接 模式 ........................................................................................................................................................................ 147 
10.1  手机操作问题 ...................................................................................................................................................................... 147 
10.2  传统方案解决手机操作问题 ................................................................................................................................................ 147 
10.3  传统方案解决手机操作问题分析 ......................................................................................................................................... 148 
10.4  桥接模式(BRIDGE)-基本介绍 ................................................................................................................................................ 148 
10.5  桥接模式(BRIDGE)-原理类图 ................................................................................................................................................ 148 
10.6  桥接模式解决手机操作问题 ................................................................................................................................................ 149 
10.7  桥接模式在 JDBC 的源码剖析 ............................................................................................................................................. 156 
10.8  桥接模式的注意事项和细节 ................................................................................................................................................ 157 
10.9  常见的应用场景................................................................................................................................................................... 158 
第  11  章  装饰者设计模式 ............................................................................................................................................................. 159 
11.1  星巴克咖啡订单项目(咖啡馆): ..................................................................................................................................... 159 
11.2  方案 1-解决星巴克咖啡订单项目 ......................................................................................................................................... 159 
11.3  方案 1-解决星巴克咖啡订单问题分析 ................................................................................................................................. 159 
11.4  方案 2-解决星巴克咖啡订单(好点) ................................................................................................................................................... 160 
11.5  方案 2-解决星巴克咖啡订单问题分析 ................................................................................................................................. 160 
11.6  装饰者模式定义 ................................................................................................................................................................... 161 
11.7  装饰者模式原理 ................................................................................................................................................................... 161 
11.8  装饰者模式解决星巴克咖啡订单 ......................................................................................................................................... 162 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页 
 
尚硅谷 Java 设计模式 
11.9  装饰者模式下的订单:2 份巧克力+一份牛奶的 LONGBLACK .............................................................................................................................. 162 
11.10  装饰者模式咖啡订单项目应用实例 .................................................................................................................................... 162 
11.11  装饰者模式在 JDK 应用的源码分析 .................................................................................................................................. 170 
第  12 章  组 合 模式 ........................................................................................................................................................................ 172 
12.1  看一个学校院系展示需求 .................................................................................................................................................... 172 
12.2  传统方案解决学校院系展示(类图) ................................................................................................................................................... 172 
12.3  传统方案解决学校院系展示存在的问题分析 ....................................................................................................................... 172 
12.4  组合模式基本介绍 ............................................................................................................................................................... 173 
12.5  组合模式原理类图 ............................................................................................................................................................... 173 
12.6  组合模式解决学校院系展示的  应用实例 ............................................................................................................................ 174 
12.7  组合模式在 JDK 集合的源码分析 ........................................................................................................................................ 183 
12.8  组合模式的注意事项和细节 ................................................................................................................................................ 184 
第  13 章  外 观 模式 ........................................................................................................................................................................ 185 
13.1  影院管理项目 ...................................................................................................................................................................... 185 
13.2  传统方式解决影院管理 ........................................................................................................................................................ 185 
13.3  传统方式解决影院管理问题分析 ......................................................................................................................................... 186 
13.4  外观模式基本介绍 ............................................................................................................................................................... 186 
13.5  外观模式原理类图 ............................................................................................................................................................... 186 
13.6  外观模式解决影院管理 ........................................................................................................................................................ 187 
13.6.1  传统方式解决影院管理说明 ........................................................................................................................... 187 
13.6.2  外观模式应用实例 .......................................................................................................................................... 187 
13.7  外观模式在 MYBATIS 框架应用的源码分析 ......................................................................................................................... 197 
13.8  外观模式的注意事项和细节 ................................................................................................................................................ 198 
第  14 章  享 元 模式 ........................................................................................................................................................................ 199 
14.1  展示网站项目需求 ............................................................................................................................................................... 199 
14.2  传统方案解决网站展现项目 ................................................................................................................................................ 199 
14.3  传统方案解决网站展现项目-问题分析 ................................................................................................................................ 199 
14.4  享元模式基本介绍 ............................................................................................................................................................... 200 
14.5  享元模式的原理类图 ........................................................................................................................................................... 200 
14.6  内部状态和外部状态 ........................................................................................................................................................... 201 
14.7  享元模式解决网站展现项目 ................................................................................................................................................ 202 
14.8  享元模式在 JDK-INTERGER 的应用源码分析 ........................................................................................................................ 207 
14.9  享元模式的注意事项和细节 ................................................................................................................................................ 209 
第  15 章  代 理 模式 ........................................................................................................................................................................ 210 
15.1  代理模式(PROXY) ................................................................................................................................................................................ 210 
15.1.1  代理模式的基本介绍 ...................................................................................................................................... 210 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页 
 
尚硅谷 Java 设计模式 
15.2  静态代理 ............................................................................................................................................................................. 210 
15.2.1  静态代码模式的基本介绍 ............................................................................................................................... 210 
15.2.2  应用实例......................................................................................................................................................... 211 
15.2.3  静态代理优缺点 .............................................................................................................................................. 214 
15.3  动态代理 ............................................................................................................................................................................. 214 
15.3.1  动态代理模式的基本介绍 ............................................................................................................................... 214 
15.3.2 JDK 中生成代理对象的 API ........................................................................................................................................ 214 
15.3.3  动态代理应用实例 .......................................................................................................................................... 214 
15.4 CGLIB 代理 ............................................................................................................................................................................ 219 
15.4.1 Cglib 代理模式的基本介绍 .............................................................................................................................. 219 
15.4.2 Cglib 代理模式实现步骤 .................................................................................................................................. 220 
15.4.3 Cglib 代理模式应用实例 .................................................................................................................................. 220 
15.5  几种常见的代理模式介绍—  几种变体 ............................................................................................................................... 223 
第  16  章  模板方法模式 ................................................................................................................................................................. 225 
16.1  豆浆制作问题 ...................................................................................................................................................................... 225 
16.2  模板方法模式基本介绍 ........................................................................................................................................................ 225 
16.3  模板方法模式原理类图 ........................................................................................................................................................ 225 
16.3.1  模板方法模式的原理类图 ............................................................................................................................... 225 
16.4  模板方法模式解决豆浆制作问题 ......................................................................................................................................... 226 
16.5  模板方法模式的钩子方法 .................................................................................................................................................... 230 
16.6  模板方法模式在 SPRING 框架应用的源码分析 ..................................................................................................................... 232 
16.7  模板方法模式的注意事项和细节 ......................................................................................................................................... 233 
第  17 章  命 令 模式 ........................................................................................................................................................................ 234 
17.1  智能生活项目需求 ............................................................................................................................................................... 234 
17.2  命令模式基本介绍 ............................................................................................................................................................... 234 
17.3  命令模式的原理类图 ........................................................................................................................................................... 235 
17.4  命令模式解决智能生活项目 ................................................................................................................................................ 235 
17.5  命令模式在 SPRING 框架 JDBCTEMPLATE 应用的源码分析 .................................................................................................... 247 
17.6  命令模式的注意事项和细节 ................................................................................................................................................ 248 
第  18  章  访问者模式 .................................................................................................................................................................... 249 
18.1  测评系统的需求................................................................................................................................................................... 249 
18.2  传统方式的问题分析 ........................................................................................................................................................... 249 
18.3  访问者模式基本介绍 ........................................................................................................................................................... 249 
18.4  访问者模式的原理类图 ........................................................................................................................................................ 250 
18.5  访问者模式应用实例 ........................................................................................................................................................... 251 
18.6  访问者模式的注意事项和细节 ............................................................................................................................................. 258 
第  19  章  迭代器模式 .................................................................................................................................................................... 259 
第 II页 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
 
 
尚硅谷 Java 设计模式 
19.1  看一个具体的需求 ............................................................................................................................................................... 259 
19.2  传统的设计方案(类图) ....................................................................................................................................................................... 259 
19.3  传统的方式的问题分析 ........................................................................................................................................................ 259 
19.4  迭代器模式基本介绍 ........................................................................................................................................................... 259 
19.5  迭代器模式的原理类图 ........................................................................................................................................................ 260 
19.6  迭代器模式应用实例 ........................................................................................................................................................... 260 
19.7  迭代器模式在 JDK-ARRAYLIST 集合应用的源码分析 .......................................................................................................... 272 
19.8  迭代器模式的注意事项和细节 ............................................................................................................................................. 273 
第  20  章  观察者模式 .................................................................................................................................................................... 275 
20.1  天气预报项目需求,具体要求如下: .................................................................................................................................... 275 
20.2  天气预报设计方案 1-普通方案 ............................................................................................................................................ 275 
20.2.1 WeatherData 类 ................................................................................................................................................ 275 
20.3  观察者模式原理................................................................................................................................................................... 280 
20.4  观察者模式解决天气预报需求 ............................................................................................................................................. 280 
20.4.1  类图说明......................................................................................................................................................... 280 
20.4.2  代码实现......................................................................................................................................................... 281 
20.4.3  观察者模式的好处 .......................................................................................................................................... 288 
20.5  观察者模式在 JDK 应用的源码分析 ..................................................................................................................................... 288 
第  21  章  中介者模式 .................................................................................................................................................................... 290 
21.1  智能家庭项目 ...................................................................................................................................................................... 290 
21.2  传统方案解决智能家庭管理问题 ......................................................................................................................................... 290 
21.3  传统的方式的问题分析 ........................................................................................................................................................ 290 
21.4  中介者模式基本介绍 ........................................................................................................................................................... 291 
21.5  中介者模式的原理类图 ........................................................................................................................................................ 291 
21.6  中介者模式应用实例-智能家庭管理 .................................................................................................................................... 291 
21.7  中介者模式的注意事项和细节 ............................................................................................................................................. 301 
第  22  章  备忘录模式 .................................................................................................................................................................... 302 
22.1  游戏角色状态恢复问题 ........................................................................................................................................................ 302 
22.2  传统方案解决游戏角色恢复 ................................................................................................................................................ 302 
22.3  传统的方式的问题分析 ........................................................................................................................................................ 302 
22.4  备忘录模式基本介绍 ........................................................................................................................................................... 302 
22.5  备忘录模式的原理类图 ........................................................................................................................................................ 303 
22.6  游戏角色恢复状态实例 ........................................................................................................................................................ 308 
22.7  备忘录模式的注意事项和细节 ............................................................................................................................................. 313 
第  23  章  解释器模式 .................................................................................................................................................................... 315 
23.1  四则运算问题 ...................................................................................................................................................................... 315 
 
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网 
第 II页