其他分享
首页 > 其他分享> > 认识适配器模式

认识适配器模式

作者:互联网

适配器模式

认识适配器模式

什么是适配器模式?

将一个接口转换成用户希望的接口,使得接口不相容的类可以一起工作。

角色有那些?

适配器模式

适配器模式优缺点

优点:
缺点:
案例

方法1:采用继承实现(类适配器,单继承)

package com.model.adapter;
/**
 * 要被适配的类 网线
 */
public class Adaptee {
    public  void request(){
        System.out.println("连接网线上网");
    }
}
package com.model.adapter;

/**
 * 适配器:  连接电脑,连接网线
 */
public class Adapter extends Adaptee implements NetToUsb{

    public void HandlerRequest() {
        super.request();
    }
}

package com.model.adapter;
/**
 * 接口转换器的抽象实现
 */
public interface NetToUsb {
    /**
     * 作用:处理请求,使得网线能插入上网
     */
    public void HandlerRequest();
}
package com.model.adapter;

/**
 * 客户端类:插不上网线,无法上网
 */
public class Computer {
    //电脑需要连上适配器才能上网
    public void net(NetToUsb netToUsb) {
        netToUsb.HandlerRequest();
    }

    public static void main(String[] args) {
        //电脑 适配器 网线
        Computer computer = new Computer();
        Adaptee adaptee = new Adaptee();
        Adapter adapter = new Adapter();
        computer.net(adapter);

    }
}

方法2:采用组合方式实现

package com.model.adapter;

/**
 * 适配器:  连接电脑,连接网线
 */
public class Adapter2 implements NetToUsb{
    //采用组合方式实现
    private Adaptee adaptee;

    public Adapter2(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    public void HandlerRequest() {
        adaptee.request();
    }
}
public class Computer {
    //电脑需要连上适配器才能上网
    public void net(NetToUsb netToUsb) {
        netToUsb.HandlerRequest();
    }

    public static void main(String[] args) {
        //电脑 适配器 网线
        Computer computer = new Computer();
        Adaptee adaptee = new Adaptee();
        Adapter adapter = new Adapter();

        Adapter2 a = new Adapter2(adaptee);
        computer.net(adapter);

    }

结果:

在这里插入图片描述

适配器模式在spring 中的应用

1.适配器在Spring MVC中应用

Spring MVC中的适配器模式主要用于执行目标 Controller 中的请求处理方法。

在Spring MVC中,DispatcherServlet 作为用户,HandlerAdapter 作为期望接口,具体的适配器实现类用于对目标类进行适配,Controller 作为需要适配的类。

Spring MVC 中的 Controller 种类众多,不同类型的 Controller 通过不同的方法来对请求进行处理。如果不利用适配器模式的话,DispatcherServlet 直接获取对应类型的 Controller

2.Spring AOP中的适配器模式

在Spring的Aop中,使用的 Advice(通知) 来增强被代理类的功能。

Advice的类型有:MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice

在每个类型 Advice 都有对应的拦截器,MethodBeforeAdviceInterceptor、AfterReturningAdviceInterceptor、ThrowsAdviceInterceptor

Spring需要将每个 Advice 都封装成对应的拦截器类型,返回给容器,所以需要使用适配器模式对 Advice 进行转换。

参考博文:适配器模式的应用.

标签:认识,适配,适配器,模式,Adaptee,adapter,public
来源: https://blog.csdn.net/an760998254/article/details/116769105