随笔分类 - 设计模式
设计模式课程 设计模式精讲 22-1 备忘录模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 备忘录相关的设计模式 1 课程讲解 1.1 类型: 行为型 1.2 定义: 定义:保存一个对象的其个状态,以便在适当的时候恢复对象。 扩展:后悔药 举例: 游戏存档 word回退 1.3 适用场
阅读全文
设计模式课程 设计模式精讲 21-3 观察者模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的应用:监听器是如何实现的) 1.2 源码解析2(guava中的应用) 1 源码解析 1.1 源码解析1(jdk中的应用:监听器是如何实现的) a 监听器的实现方案是观察者模式(发布订阅模式)实现的一种 b 前端给按钮添加事件也可以看作观察者模式的一种实现
阅读全文
设计模式课程 设计模式精讲 21-2 观察者模式coding
摘要:1 代码演练 1.1 代码演练1(一对一观察) 1.2 代码演练2(一对多观察) 1.3 代码演练3(多对多观察) 1 代码演练 1.1 代码演练1(一对一观察) 需求: 木木网课程系统,教师后台提醒功能,当对应课程收到提问时,系统能给对应教师发出提醒 注意: a 设计的时候,可以分为教师类,课程类
阅读全文
设计模式课程 设计模式精讲 21-1 观察者模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1 课程讲解 1.1 类型: 行为型 1.2 定义: ·定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新 举例:
阅读全文
设计模式课程 设计模式精讲 20-3 解释器模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的应用) 1.2 源码解析2(Spring中的应用) 1.3 源码解析为何算出666? 1 源码解析 1.1 源码解析1(jdk中的应用) java.util.regex.Pattern (java正则表达式通过java.util.regex包下的Patte
阅读全文
设计模式课程 设计模式精讲 20-2 解释器模式coding
摘要:1 代码演练 1.1 代码演练1(解释器模式coding) 1.2 代码演练如何应用了解释器模式 1 代码演练 1.1 代码演练1(解释器模式coding)(该案例运用了栈的先进先出的特性) 需求: 原系统中有大量的处理计算的类:处理的规则有(a+b)*c*d+e和a/b+c-d等等数量众多方法;如
阅读全文
设计模式课程 设计模式精讲 20-1 解释器模式讲解
摘要:1 课程讲解 1.0 频次 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 其他特性: 1.7 与其他设计模式关系: 1 课程讲解 1.0 频次: 使用频次很低,理解就可以,重点关注其他的设计模式 1.1 类型: 行为型 1.2 定义: ·定义:给定一个语
阅读全文
设计模式课程 设计模式精讲 19-3 策略模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的应用1) 1.2 源码解析2(jdk中的应用2) 1.3 源码解析3(Spring中的应用1) 1.4 源码解析4(Spring中的应用2) 1 源码解析 1.1 源码解析1(jdk中的应用1) java.util.Comparator(策略类)作为比较器
阅读全文
设计模式课程 设计模式精讲 19-2 策略模式coding
摘要:1 代码演练 1.1 代码演练1(多态) 1.2 代码演练2(优化应用) 1.3 代码演练3(策略模式结合工厂模式) 1 代码演练 1.1 代码演练1(多态) 需求: 木木网卖课程,为了促进销售,618实行买课程立减10元,双十一实行满50减10元,还有返现的优惠(这个活动还没有开始)。请实现它 u
阅读全文
设计模式课程 设计模式精讲 19-1 策略模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 其他特性: 1.7 与其他设计模式关系: 1 课程讲解 1.1 类型: 行为型 1.2 定义: 定义:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的
阅读全文
设计模式课程 设计模式精讲 18-3 迭代器模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的应用) 1.2 源码解析2(mybaties中的应用) java.util.Iterator(接口) java.util.ArrayList(实现) DefaultCursor.java
阅读全文
设计模式课程 设计模式精讲 18-2 迭代器模式coding
摘要:1 代码演练 1.1 代码演练1(迭代器模式演练) 1.2 代码使用场景 需求: 课程管理:需要实现课程可进行增添,删除,并能够打印出课程列表。 uml类图: 测试类: 实体类(课程): 课程迭代接口: 课程迭代实现: 课程列表调用接口: 课程列表调用实现: 打印结果: 1.2 代码使用场景 通常不
阅读全文
设计模式课程 设计模式精讲 16-5 代理模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的应用) 1.2 源码解析2(spring中的应用) 1.3 源码解析3(mybaties中的应用) java.lang.reflect.Proxy ProxyFactoryBean MapperProxyFactory
阅读全文
设计模式课程 设计模式精讲 16-4 代理模式Coding-动态代理
摘要:1 代码演练 1.1 动态代理 2 疑难解答 2.1 动态代理invoke怎么执行的? 2.2 感觉这块理解的不是很好,下边有时间再看看 重点: 重点关注动态代理类 测试类: 动态代理类: 订单类: 订单dao: 订单daoIMPL: 订单Service: 订单ServiceIMPL: 打印日志:
阅读全文
设计模式课程 设计模式精讲 18-1 迭代器模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 与其他设计模式关系: 1 课程讲解 1.1 类型: 行为型 1.2 定义: ◆定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示 1.3 适用场景: ◆访问一个集合
阅读全文
设计模式课程 设计模式精讲 17-3 模板方法模式源码解析
摘要:1 源码解析 1.1 源码解析1(在jdk中的使用) 1.2 源码解析2(在servlet中的应用) 1.3 源码解析3(在mybaties中的应用) AbstractList(父类) ArrayList(子类) 同理:AbstractSet,AbstractMap同样采用了模版方法模式 HttpS
阅读全文
设计模式课程 设计模式精讲 17-2 模板方法模式coding
摘要:1 代码演练 1.1 代码演练1 1.2 代码演练2(后端课程子类运用钩子方法,加入写手记的方法) 1.3 代码演练3(前端有多个子类,有得需要写手记,有得不需要写,如何实现?) 目的: 木木网制作课程视频父类,前端课程子类和设计模式子类。父类需要制作PPT,制作视频,制作手记,包装课程四个部分,且
阅读全文
设计模式课程 设计模式精讲 17-1 模板方法模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 模板方法扩展: 1.7 与其他设计模式关系: 1 课程讲解 1.1 类型: 行为型 1.2 定义: ◆定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现◆模板方法使得子类可以在不改变
阅读全文
设计模式课程 设计模式精讲 16-2,3 代理模式Coding-静态代理-1
摘要:https://coding.imooc.com/lesson/270.html#mid=18123 1 代码演练 1.1 代码演练1(静态代理之分库操作) 1 代码演练 1.1 代码演练1(静态代理之分库操作) 需求: 订单管理,模拟前置后置方法,模拟分库管理 重点: 重点看订单静态代理,动态数据
阅读全文
设计模式课程 设计模式精讲 16-1 代理模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 与其他设计模式关系: 结构型 ◆定义:为其他对象提供一种代理,以控制对这个对象的访问◆代理对象在客户端和目标对象之间起到中介的作用 比喻:目标对象可以理解为房东,客户端代表你,房屋中介代表中介,
阅读全文