JAVA 设计模式 在尚硅谷学习记录的一些内容,希望可以和大家一起学习,由于内容过多,具体内容在云盘。 第 1 章 内容介绍和授课方式 1 JAVA 设计模式内容介绍 1 先看几个经典的面试题 1设计模式的重要性 3课程亮点和授课方式 4 第 2 章 设计模式七大原则 6 设计模式的目的 6设计模式七大原则 6单一职责原则 7 基本介绍 7应用实例 7单一职责原则注意事项和细节 12接口隔离原则(INTERFACE SEGREGATION PRINCIPLE) 12 基本介绍 12应用实例 13应传统方法的问题和使用接口隔离原则改进 16依赖倒转原则 21 基本介绍 21应用实例 21依赖关系传递的三种方式和应用案例 24依赖倒转原则的注意事项和细节 28里氏替换原则 29 OO 中的继承性的思考和说明 29基本介绍 29一个程序引出的问题和思考 30解决方法 31开闭原则 34 基本介绍 34看下面一段代码 35方式 1 的优缺点 38改进的思路分析 38迪米特法则 42 基本介绍 42应用实例 42应用实例改进 46迪米特法则注意事项和细节 51合成复用原则(COMPOSITE REUSE PRINCIPLE) 51 基本介绍 51设计原则核心思想 51 第 3 章 UML 类图 53 UML 基本介绍 53UML 图 54UML 类图 55类图—依赖关系(DEPENDENCE) 56类图—泛化关系(GENERALIZATION) 57类图—实现关系(IMPLEMENTATION) 58类图—关联关系(ASSOCIATION) 59类图—聚合关系(AGGREGATION) 59 基本介绍 59应用实例 59类图—组合关系(COMPOSITION) 60 基本介绍 60应用案例 60 第 4 章 设计模式概述 63 掌握设计模式的层次 63设计模式介绍 63设计模式类型 63 第 5 章 单例设计模式 65 单例设计模式介绍 65单例设计模式八种方式 65饿汉式(静态常量) 65饿汉式(静态代码块) 67懒汉式(线程不安全) 69懒汉式(线程安全,同步方法) 71懒汉式(线程安全,同步代码块) 72双重检查 73静态内部类 75 5.10 枚举 77 单例模式在 JDK 应用的源码分析 78 5.11.1 单例模式在 JDK 应用的源码分析 78 单例模式注意事项和细节说明 79 第 6 章 工 厂 模式 80 简单工厂模式 80 看一个具体的需求 80使用传统的方式来完成 80传统的方式的优缺点 82基本介绍 82使用简单工厂模式 83工厂方法模式 89 看一个新的需求 89 6.2.2 思 路 1 89 6.2.3 思 路 2 89 工厂方法模式介绍 89工厂方法模式应用案例 89抽象工厂模式 94 基本介绍 94抽象工厂模式应用实例 95工厂模式在 JDK-CALENDAR 应用的源码分析 99工厂模式小结 103 第 7 章 原 型 模式 104 克隆羊问题 104传统方式解决克隆羊问题 104传统的方式的优缺点 105原型模式-基本介绍 105原型模式原理结构图-UML 类图 106原型模式解决克隆羊问题的应用实例 106原型模式在 SPRING 框架中源码分析 110深入讨论-浅拷贝和深拷贝 110 浅拷贝的介绍 110深拷贝基本介绍 111深拷贝应用实例 111原型模式的注意事项和细节 116 第 8 章 建造者模式 118 盖房项目需求 118传统方式解决盖房需求 118传统方式的问题分析 120建造者模式基本介绍 121建造者模式的四个角色 121建造者模式原理类图 121建造者模式解决盖房需求应用实例 122建造者模式在 JDK 的应用和源码分析 129建造者模式的注意事项和细节 129 第 9 章 适配器设计模式 131 现实生活中的适配器例子 131基本介绍 131工作原理 131类适配器模式 132 类适配器模式介绍 132类适配器模式应用实例 132类适配器模式注意事项和细节 135对象适配器模式 135 对象适配器模式介绍 135对象适配器模式应用实例 136对象适配器模式注意事项和细节 140接口适配器模式 140 接口适配器模式介绍 140接口适配器模式应用实例 140适配器模式在 SPRINGMVC 框架应用的源码剖析 144适配器模式的注意事项和细节 146 第 10 章 桥 接 模式 147 手机操作问题 147传统方案解决手机操作问题 147传统方案解决手机操作问题分析 148桥接模式(BRIDGE)-基本介绍 148桥接模式(BRIDGE)-原理类图 148桥接模式解决手机操作问题 149桥接模式在 JDBC 的源码剖析 156桥接模式的注意事项和细节 157常见的应用场景 158 第 11 章 装饰者设计模式 159 星巴克咖啡订单项目(咖啡馆): 159方案 1-解决星巴克咖啡订单项目 159方案 1-解决星巴克咖啡订单问题分析 159方案 2-解决星巴克咖啡订单(好点) 160方案 2-解决星巴克咖啡订单问题分析 160装饰者模式定义 161装饰者模式原理 161装饰者模式解决星巴克咖啡订单 162装饰者模式下的订单:2 份巧克力+一份牛奶的 LONGBLACK 162装饰者模式咖啡订单项目应用实例 162装饰者模式在 JDK 应用的源码分析 170 第 12 章 组 合 模式 172 看一个学校院系展示需求 172传统方案解决学校院系展示(类图) 172传统方案解决学校院系展示存在的问题分析 172组合模式基本介绍 173组合模式原理类图 173组合模式解决学校院系展示的 应用实例 174组合模式在 JDK 集合的源码分析 183组合模式的注意事项和细节 184 第 13 章 外 观 模式 185 影院管理项目 185传统方式解决影院管理 185传统方式解决影院管理问题分析 186外观模式基本介绍 186外观模式原理类图 186外观模式解决影院管理 187 传统方式解决影院管理说明 187外观模式应用实例 187外观模式在 MYBATIS 框架应用的源码分析 197外观模式的注意事项和细节 198 第 14 章 享 元 模式 199 展示网站项目需求 199传统方案解决网站展现项目 199传统方案解决网站展现项目-问题分析 199享元模式基本介绍 200享元模式的原理类图 200内部状态和外部状态 201享元模式解决网站展现项目 202享元模式在 JDK-INTERGER 的应用源码分析 207享元模式的注意事项和细节 209 第 15 章 代 理 模式 210 代理模式(PROXY) 210 代理模式的基本介绍 210静态代理 210 静态代码模式的基本介绍 210应用实例 211静态代理优缺点 214动态代理 214 动态代理模式的基本介绍 214JDK 中生成代理对象的 API 214动态代理应用实例 214CGLIB 代理 219 Cglib 代理模式的基本介绍 219Cglib 代理模式实现步骤 220Cglib 代理模式应用实例 220几种常见的代理模式介绍— 几种变体 223 第 16 章 模板方法模式 225 豆浆制作问题 225模板方法模式基本介绍 225模板方法模式原理类图 225 16.3.1 模板方法模式的原理类图 225 模板方法模式解决豆浆制作问题 226模板方法模式的钩子方法 230模板方法模式在 SPRING 框架应用的源码分析 232模板方法模式的注意事项和细节 233 第 17 章 命 令 模式 234 智能生活项目需求 234命令模式基本介绍 234命令模式的原理类图 235命令模式解决智能生活项目 235命令模式在 SPRING 框架 JDBCTEMPLATE 应用的源码分析 247命令模式的注意事项和细节 248 第 18 章 访问者模式 249 测评系统的需求 249传统方式的问题分析 249访问者模式基本介绍 249访问者模式的原理类图 250访问者模式应用实例 251访问者模式的注意事项和细节 258 第 19 章 迭代器模式 259 看一个具体的需求 259传统的设计方案(类图) 259传统的方式的问题分析 259迭代器模式基本介绍 259迭代器模式的原理类图 260迭代器模式应用实例 260迭代器模式在 JDK-ARRAYLIST 集合应用的源码分析 272迭代器模式的注意事项和细节 273 第 20 章 观察者模式 275 天气预报项目需求,具体要求如下: 275天气预报设计方案 1-普通方案 275 WeatherData 类 275观察者模式原理 280观察者模式解决天气预报需求 280 类图说明 280代码实现 281观察者模式的好处 288观察者模式在 JDK 应用的源码分析 288 第 21 章 中介者模式 290 智能家庭项目 290传统方案解决智能家庭管理问题 290传统的方式的问题分析 290中介者模式基本介绍 291中介者模式的原理类图 291中介者模式应用实例-智能家庭管理 291中介者模式的注意事项和细节 301 第 22 章 备忘录模式 302 游戏角色状态恢复问题 302传统方案解决游戏角色恢复 302传统的方式的问题分析 302备忘录模式基本介绍 302备忘录模式的原理类图 303游戏角色恢复状态实例 308备忘录模式的注意事项和细节 313 第 23 章 解释器模式 315 四则运算问题 315传统方案解决四则运算问题分析 315解释器模式基本介绍 315解释器模式的原理类图 316解释器模式来实现四则 316解释器模式在 SPRING 框架应用的源码剖析 325解释器模式的注意事项和细节 326 第 24 章 状 态 模式 327 APP 抽奖活动问题 327状态模式基本介绍 327状态模式的原理类图 327状态模式解决 APP 抽奖问 328状态模式在实际项目-借贷平台 源码剖析 341状态模式的注意事项和细节 354 第 25 章 策 略 模式 355 编写鸭子项目,具体要求如下 355传统方案解决鸭子问题的分析和代码实现 355传统的方式实现的问题分析和解决方案 359策略模式基本介绍 359策略模式的原理类图 359策略模式解决鸭子问题 360策略模式在 JDK-ARRAYS 应用的源码分析 368策略模式的注意事项和细节 371 第 26 章 职责链模式 372 学校 OA 系统的采购审批项目:需求是 372传统方案解决 OA 系统审批,传统的设计方案(类图) 372传统方案解决 OA 系统审批问题分析 372职责链模式基本介绍 373职责链模式的原理类图 373职责链模式解决 OA 系统采购审批 373职责链模式在 SPRINGMVC 框架应用的源码分析 381职责链模式的注意事项和细节 383