随笔分类 - 设计模式
设计模式课程 设计模式精讲 15-3 桥接模式源码解析
摘要:1 桥接模式源码解析 1.1 源码解析1 jdk中的应用(驱动类) 步骤: class.forName 调取驱动接口的静态块,触发驱动管理类DriverManager 的注册驱动方法,从而将该驱动放到CopyOnWriteArrayList中。 getConnect方法是通过传入url用户名密码。
阅读全文
设计模式课程 设计模式精讲 15-2 桥接模式Coding
摘要:1 代码演练 1.1 代码演练1 1.2 代码演练2 需求: 打印出从银行获取的账号类 优点: a 假如我只用用一个银行接口 去获取账号的内容,银行实现类要有定期账号和活期账号两个方法,如果实现类特别多,很容易类爆炸。 b 而使用桥接模式可以 让实现(账号类)和抽象(银行类)分离,银行属性增加修改银
阅读全文
设计模式课程 设计模式精讲 15-1 桥接模式讲解
摘要:1 桥接模式讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 与其他设计模式关系: 结构型 ◆定义:将抽象部分与它的具体实现部分分离,使它们都可以独立地变化◆合成复用原则中提到:优先通过组合的方式建立两个类之间联系,而不是继承,继承过多会发生类爆炸的情
阅读全文
设计模式课程 设计模式精讲 14-3 组合模式源码解析
摘要:1 源码解析 1.1 jdk源码解析之Container 1.2 jdk源码解析之HashMap 1.3 jdk源码解析之ArrayList 1.4 mybaties源码解析之SqlNode ArrayList实现了List,List继承了Conllection,所以ArrayList的addAll
阅读全文
设计模式课程 设计模式精讲 14-2 组合模式coding
摘要:1 代码演练 1.1 代码演练1(组合模式1) 1.2 代码演练2(组合模式1之完善) 需求: 打印出木木网的课程结构, 我们用一个组建类作为接口,课程类和目录类继承。 uml: 组件类: 课程类: 目录类: 测试类: 打印日志: 1.1的缺陷是 没有打出目录结构 只修改了课程目录类 和测试类: 测
阅读全文
设计模式课程 设计模式精讲 14-1 组合模式讲解
摘要:1 系统讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 与其他模式的交互 结构型 ◆定义:将对象组合成树形结构以表示”部分-整体”的层次结构◆组合模式使客户端对单个对象和组合对象保持一致的方式处理 ·希望客户端可以忽略组合对象与单个对象的差异时处理一
阅读全文
设计模式课程 设计模式精讲 13-3 享元模式源码解析
摘要:1 享元模式源码解析 1.1 享元模式源码解析1(jdk中的应用) 1.2 享元模式源码解析2(tomcat中的应用) 测试类: Integer类: 打印日志: 父类(GenericObjectPoolConfig):添加了一些默认的配置 子类(GenericKeyedObjectPoolConfi
阅读全文
设计模式课程 设计模式精讲 13-2 享元模式coding
摘要:1 代码演练 1.1 代码演练1 需求: 每周由随机部门经历做报告; 重点关注: a 该案例是单例模式和享元模式共同使用 b 外部传入的department是外部状态,如果是Manager内部定义一个属性String类型的ManagerTitile,那么无论外部传过来的部门如何变化,这个Manage
阅读全文
设计模式课程 设计模式精讲 13-1 享元模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 应用场景: 1.4 优点: 1.5 缺点: 1.6 扩展: 1.7 和其他设计模式比较: 结构型: ◆定义:提供了减少对象数量从而改善应用所需的对象结构的方式◆运用共享技术有效地支持大量细粒度的对象 (可能对于内存溢出类型的问题解决有效)(池子)
阅读全文
设计模式课程 设计模式精讲 12-3 适配器模式源码解析
摘要:1 源码解析 1.1 源码解析1(在jdk中的应用) 1.2 源码解析2(Spring中的通知管理) 1.3 源码解析3(SpringMVC中的应用) xmlAdapter(此类是用于适配xml的一个类,是处理xml序列化和反序列化的一个类) 对于xml序列化的时候,我们时间可以写一个date类,可
阅读全文
设计模式课程 设计模式精讲 12-2 适配器模式coding
摘要:1 重要 1.1 类适配器和对象适配器最大的区别 2 代码演练 2.1 代码演练1(类适配器模式) 2.2 代码演练2(对象适配模式) 2.3 代码演练3(具体应用场景) 类适配器通过继承关系达到适配的目的,而对象适配器通过组合达到适配目的。 需求相关: a类和b类,想用b类或者b类的子类实现a类的
阅读全文
设计模式课程 设计模式精讲 11-3 装饰者模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk1.7中的应用一) 1.2 源码解析2(jdk1.7中的应用二) 1.3 源码解析3(Spring中的应用) 1.4 源码解析4(Servlet中的应用) 1.5 源码解析5(myBaties中的应用) BufferedReader Reader uml类图
阅读全文
设计模式课程 设计模式精讲 12-1 适配器模式讲解
摘要:1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 扩展: 1.7 和其他设计模式的比较 结构型 将一个类的接口转换成客户期望的另一个接口◆使原本接口不兼容的类可以一起工作 ◆已经存在的类,它的方法和需求不匹配时(方法结果相同或相似)◆不是软件设
阅读全文
设计模式课程 设计模式精讲 11-2 装饰者模式coding
摘要:1 代码演练 1.1 代码演练1(未使用装饰者模式) 1.2 代码演练2(使用装饰者模式) 需求: 大妈下班卖煎饼,加一个鸡蛋加一元,一个火腿两元,现在a买一个煎饼,b买加蛋的煎饼,c买加肠加蛋的煎饼,请实现它 煎饼类: 煎饼鸡蛋类: 煎饼鸡蛋香肠类: 测试类: 打印结果: 需求变更: 现在肠和蛋随
阅读全文
设计模式课程 设计模式精讲 10-3 外观模式源码解析
摘要:1 源码解析 1.1 源码解析1(jdk中的JDBCUtils工具类) 1.2 源码解析2(mybaties应用的Configuration) 1.3 源码解析3(在tomcat(7.0.9版本或以上)中的应用) jdbc在springJDBC中的封装 通过封装之后,我们的客户端都有这些功能,这一组
阅读全文
设计模式课程 设计模式精讲 11-1 装饰者模式讲解
摘要:1 课程讲解 1.1 类型 1.2 定义 1.3 应用场景 1.4 优点 1.5 缺点 1.6 关联设计模式 1.7 其他知识点 结构型 ◆定义:在不改变原有对象的基础之上,将功能附加到对象上 提供了比继承更有弹性的替代方案(扩展原有对象功能) 比如说:我买蛋糕的时候加草莓还是芒果,我烧饼加火腿,鱼
阅读全文
设计模式课程 设计模式精讲 10-2 外观模式coding
摘要:1 代码演练 1.1 代码演练1(不使用外观模式) 1.2 代码演练2(使用外观模式) 2 应用核心 2.1 核心 2.2 零碎知识点 需求: 木木网有积分兑换礼物的功能,设计的时候需要校验三步: a 资格校验系统,是木木网会员。 b 积分系统,该系统放的是各个积分的获取支出,需要拿出该用户目前的积
阅读全文
设计模式课程 设计模式精讲 10-1 外观模式讲解
摘要:1 课堂讲解 1.1 类型 1.2 定义 1.3 适用场景 1.4 优点 1.5 缺点 1.6 相关联设计模式对比 1 课堂讲解 1.1 类型 类型:结构型 1.2 定义 定义:又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口 外观模式定义了一个高层接口,让子系统更容易使用 1.3 适
阅读全文
设计模式课程 设计模式精讲 重点
摘要:1 克隆对象的引用问题:查看克隆出的对象是否是同一个对象(参考9-4) 2 工厂方法和抽象工厂 最大的区别是什么 3 产品镞和产品等级结构
阅读全文
设计模式课程 设计模式精讲 9-4 原型模式源码解析
摘要:1 源码解析 1.1 源码解析1(java.lang.Object对象) 1.2 源码解析2(ArrayList实现克隆) 1.3 源码解析3(mybaties 的cacheKey)
阅读全文