• 重学设计模式-适配器模式-spring当中的应用


    适配器 设计模式

    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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    package com.zw.design.pattern.creational.structural.adapter.v2;
    
    public interface DC5 {
        int outputDC5V();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    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();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    框架源码解析

    在spring框架当中Aop包下 这个接口AdvisorAdapter 下实现类MethodBeforeAdviceAdapter 这个是增强方法运行之前的
    在这里插入图片描述
    在SpringMvc 当中使用适配器设计模式应用HandlerAdapter接口 比如我们经常使用Controller 就是SimpleControllerHandlerAdapter的实现
    在这里插入图片描述
    代码如下

  • 相关阅读:
    N元语言模型
    Netty优化-扩展自定义协议中的序列化算法
    HTML+CSS大作业:众志成城 抗击疫情 抗击疫情网页制作作业 疫情防控网页设计
    目标检测评估指标mAP:从Precision,Recall,到AP50-95【未完待续】
    【Nginx27】Nginx学习:代理模块(一)基本配置与概念
    Spring(三)- Spring中Bean的配置
    java计算机毕业设计web家庭财务管理系统源码+mysql数据库+系统+lw文档+部署
    react 使用useRoutes遇到的问题
    【vendor】Go 包依赖管理工具govendor
    spring
  • 原文地址:https://blog.csdn.net/qq_32048567/article/details/126024418