图解Java设计模式【笔记】

图解Java设计模式


001 设计模式面试题(1)

原型设计模式问题:

1)有请使用UML类图画出原型模式核心角色;
2)原型设计模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种方式的源码(重写clone方法实现深拷贝、使用序列化来实现深拷贝)
3)在Spring框架中哪里使用到原型模式,并对源码进行分析
beans.xml

<bean id="id01" class="com.atguigu.spring.bean.Monster" scope=" prototype"/>
  1. Spring中原型bean的创建,就是原型模式的应用
  2. 代码分析+Debug源码

设计模式的七大原则:

  1. 七大设计原则的核心思想
    2)能够以类图的说明设计原则
    3)在项目实际开发中,你在哪里使用到了ocp原则
  • 1、单一职责原则
  • 2、接口隔离原则
  • 3、依赖倒置原则
  • 4、 里氏替换原则
  • 5、 开闭原则 ocp原则
  • 6、迪米特法则
  • 7、合成复用原则

002 设计模式面试题(2)

项目

在这里插入图片描述

解释器设计模式

在这里插入图片描述

单例设计模式

在这里插入图片描述


003 何时会用到设计模式

  • 设计模式:是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案;

  • 设计模式在软件中哪里?

  • 面向对象(OO) =>

  • 功能模块[ 设计模式 + 算法(数据结构)] =>

  • 框架【使用到多种设计模式】 =>

  • 架构【服务器集群】

注解+反射+设计模式 = 框架


004 内容和授课方式


005 七大设计原则介绍


006 单一职责原则


007 单一职责原则小结


008 接口隔离原则(1)


009 接口隔离原则(2)


010 接口隔离原则小结


011 依赖倒转原则(1)


012 依赖倒转原则(2)


013 依赖倒转原则小结


014 里氏替换原则(1)


015 里氏替换原则(2)


016 开闭原则(1)


017 开闭原则(2)


018 开闭原则小结


019 迪米特法则(1)


020 迪米特法则(2)


021 迪米特法则注意事项


022 合成复用原则及小结


023 UML基本介绍


024 UML类图


025 类的依赖、泛化和实现


026 类的关联、聚合和组合


027 类图六大关系总结


028 设计模式概述和分类


029 单例(静态常量饿汉式)


030 单例(静态代码块饿汉式)


031 单例(线程不安全懒汉式)


032 单例(线程安全懒汉式)


033 单例(同步代码块懒汉式)


034 单例(DoubleCheck)


035 单例(静态内部类)


036 单例(枚举方式)


037 单例模式JKD源码分析


038 单例模式注意事项


039 简单工厂模式(1)-披萨订购


040 简单工厂模式(2)-披萨订购


041 简单工厂模式(3)-披萨订购


042 简单工厂模式(4)-披萨订购


043 工厂方法模式(1)-披萨订购


044 工厂方法模式(2)-披萨订购


045 抽象工厂模式(1)-披萨订购


046 抽象工厂模式(2)-披萨订购


047 工厂模式-JDK源码分析


048 工厂模式-小结


049 原型模式(1)-克隆羊


050 原型模式(2)-克隆羊


051 原型模式(3)-Spring源码分析


052 原型模式(4)-深拷贝


053 原型模式(5)-深拷贝


054 原型模式(6)-内容梳理


055 建造者模式(1)-盖房子


056 建造者模式(2)-原理类图


057 建造者模式(3)-盖房子


058 建造者模式(4)-StringBuilder源码


059 建造者模式(5)-内容梳理


060 适配器模式-工作原理


061 类适配器-电压问题


062 对象适配器-电压问题


063 接口适配器-电压问题


064 适配器模式-Dispatcher源码


065 适配器模式-内容梳理


066 桥接模式(1)-手机问题


067 桥接模式(2)-原理类图


068 桥接模式(3)-手机问题


069 桥接模式(4)-JDBC源码


070 桥接模式(5)-内容梳理


071 装饰者模式(1)-星巴克咖啡


072 装饰者模式(2)-星巴克咖啡


073 装饰者模式(3)-工作原理


074 装饰者模式(4)-星巴克咖啡


075 装饰者模式(5)-IO源码


076 装饰者模式(6)-内容梳理


077 组合模式(1)-院校展示


078 组合模式(2)-院校展示


079 组合模式(3)-HashMap源码


080 组合模式(4)-内容梳理


081 外观模式(1)-影院管理


082 外观模式(2)-工作原理


083 外观模式(3)-影院管理


084 外观模式(4)-MyBatis源码


085 外观模式(5)-注意事项


086 享元模式(1)-网站外包


087 享元模式(2)-工作原理


088 享元模式(3)-网站外包


089 享元模式(4)-Integer源码


090 享元模式(5)-内容梳理


091 代理模式(1)-基本介绍


092 代理模式(2)-静态代理


093 代理模式(3)-动态代理


094 代理模式(4)-Cglib代理


095 代理模式(5)-几种变体


096 模板模式(1)-工作原理


097 模板模式(2)-豆浆制作


098 模板模式(3)-钩子方法


099 模板模式(4)-IOC源码


100 模板模式(5)-细节说明


101 命令模式(1)-工作原理


102 命令模式(2)-遥控器


103 命令模式(3)-遥控器


104 命令模式(4)-JdbcTml源码


105 命令模式(5)-内容梳理


106 访问者模式(1)-歌手评分


107 访问者模式(2)-原理类图


108 访问者模式(3)-歌手评分


109 访问者模式(4)-双分派


110 访问者模式(5)-使用细节


111 迭代器模式(1)-统一遍历问题


112 迭代器模式(2)-原理类图


113 迭代器模式(3)-统一遍历问题


114 迭代器模式(4)-统一遍历问题


115 迭代器模式(5)-JDK源码


116 迭代器模式(6)-使用细节


117 观察者模式(1)-天气预报


118 观察者模式(2)-天气预报


119 观察者模式(3)-工作原理


120 观察者模式(4)-天气预报


121 观察者模式(5)-Observable源码


122 观察者模式(6)-内容梳理


123 中介者模式(1)-智能家庭


124 中介者模式(2)-工作原理


125 中介者模式(3)-智能家庭


126 中介者模式(4)-内容梳理


127 备忘录模式(1)-游戏角色


128 备忘录模式(2)-工作原理


129 备忘录模式(3)-游戏角色


130 备忘录模式(4)-注意事项


131 解释器模式(1)-计算式求值


132 解释器模式(2)-原理类图


133 解释器模式(3)-计算式求值


134 解释器模式(4)-SpelExp源码


135 解释器模式(5)-总结


136 状态模式(1)-工作原理图


137 状态模式(2)-抽奖活动


138 状态模式(3)-借贷平台源码


139 状态模式(4)-注意事项


140 策略模式(1)-鸭子问题


141 策略模式(2)-工作原理


142 策略模式(3)-鸭子问题


143 策略模式(4)-Arrays源码


144 策略模式(5)-内容梳理


145 职责链模式(1)-采购审批


146 职责链模式(2)-工作原理


147 职责链模式(3)-采购审批


148 职责链模式(4)-SpringMVC源码


149 职责链模式(5)-内容梳理

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。<br /> <br /> 2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,比如 单例模式的8种实现方式、工厂模式的3种实现方式、适配器模式的3种实现、代理模式的3种方式、深拷贝等<br /> <br /> 3) 如果你想写出规范、漂亮的程序,就花时间来学习下设计模式吧<br /> <br /> 课程内容和目标<br /> <br /> 本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式<br /> <br /> 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式(3种实现)、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式(3种实现)。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)<br /> <br /> 2) 学习目标:通过学习,学员能掌握主流设计模式,规范编程风格,提高优化程序结构和效率的能力。<br /> <div> <br /> </div>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yangbocsu

你的鼓励将是我创作的最大动力!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值