【学习打卡】第3天 Java设计模式精讲-Debug方式+内存分析 第十二讲
课程名称:Java设计模式精讲-Debug方式+内存分析,真正学懂设计模式
课程章节: 适配器模式讲解+Coding+源码解析
主讲老师:Geely
课程内容:
今天学习的内容包括:
什么是适配器模式 适配器模式 优点 缺点 Coding 源码解析 以及在业务上的应用
课程收获:
适配器 设计模式
1.定义
将一个类的接口转换成客户期望的另一个接口
1.1 特点
使原本接口不兼容的类可以一起工作
1.2 类型 : 结构型
2.适用场景
1、以及存在的类,它的方法和需求不匹配时(方法结果相同或相似)
2、不是软件设计阶段考虑的设计模式,是随着软件维护 由于不同产品 不同厂家造成功能类似而接口不相同情况下的解决方案
3.缺点
1.适配器编写过程需要全面考虑,可能会增加系统的复杂性
2.增加系统代码可读的难度
4.优点
1.能提高类的透明性和复用,现有的类复用但不需要改变
2.目标类和适配器类解耦 提高程序扩展性
3.符合开闭原则
5.适配器-扩展
1.对象适配器
2.类适配器
6.适配-相关的设计模式
适配器模式和外观模式 两个适配的粒度不同
7.ulm 设计图
8.代码如下
package com.zw.design.pattern.creational.structural.adapter.v2; public class AC220 { public int outAc220V(){ int output=220; System.out.println("output = 输出交流电 " + output+" v"); return output; } }
package com.zw.design.pattern.creational.structural.adapter.v2; public interface DC5 { int outputDC5V(); }
2.适配类
package com.zw.design.pattern.creational.structural.adapter.v2; public class PowerAdapter implements DC5 { private AC220 ac220=new AC220(); @Override public int outputDC5V() { int abdinput=ac220.outAc220V(); //变压器 int output=abdinput/44; System.out.println("output = 输出交流电 " + abdinput+" v"+" 最后输出交流电"+output); return output; } }
3.测试类
package com.zw.design.pattern.creational.structural.adapter.v2; public class Test { public static void main(String[] args) { DC5 dc5=new PowerAdapter(); dc5.outputDC5V(); } }
框架源码解析
在spring框架当中Aop
包下 这个接口AdvisorAdapter
下实现类MethodBeforeAdviceAdapter
这个是增强方法运行之前的
在SpringMvc 当中使用适配器设计模式应用HandlerAdapter
接口 比如我们经常使用Controller
就是SimpleControllerHandlerAdapter
的实现
今天学习课程共用了45 分钟,重新学习一下设计模式 更加清楚知道适配器模式的应用以及如何在自己项目当中去使用它 大家一起加油 💪🏻