• 重学设计模式-适配器模式-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的实现
    在这里插入图片描述
    代码如下

  • 相关阅读:
    快速排序算法
    yolo-驾驶行为监测:驾驶分心检测-抽烟打电话检测
    Linux学习-内存管理
    WPF篇(10)-Label标签+TextBlock文字块+TextBox文本框+RichTextBox富文本框
    Liunx-01Liunx初相识
    每日刷题记录 (二十五)
    Debian下Hadoop集群安装
    ARM的异常处理
    CleanMyMac X2024免费Mac电脑清理和优化工具
    redis缓存数据和表数据一致性之延时双删策略
  • 原文地址:https://blog.csdn.net/qq_32048567/article/details/126024418