Java设计模式---适配器模式

Java设计模式---适配器模式,第1张

将一个类的接口转换成客户需要的接口。Adapter模式使得原本没法直接使用的接口进行使用。 (就相当于适配器代理那个接口,然后我们可以通过适配器调用那个接口)

假设一个场景,现在有一台比较新的电脑没有了插网线的插口,然后我们需要使用一个转换器先连接网线,然后转换器再连接电脑的Usb接口,这样电脑才能上网。

①创建一个需要被适配的类(网线)

public class Adaptee {
    public void request(){
        System.out.println("连接网线上网");
    }
}

②创建一个转换器接口并且实现它

public interface NetToUsb {
    //处理请求 网线=>Usb
    public void handleRequest();
}
//真正的适配器,帮你调用被适配的类
public class Adapter implements  NetToUsb {
   
    private Adaptee adaptee;
    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }
   
    @Override
    public void handleRequest() {
        adaptee.request();
    }
}

③创建一个需要调用被适配类的类 通过适配器调用被适配的类(电脑)

public class Computer {
    public void net(NetToUsb netToUsb){
        //上网的具体实现,需要有一个转接头
        netToUsb.handleRequest();
    }
}

④测试

public class Computer {
    public void net(NetToUsb netToUsb){
        //上网的具体实现,需要有一个转接头
        netToUsb.handleRequest();
    }
    public static void main(String[] args) {
        Computer computer = new Computer(); //电脑
        Adaptee adaptee=new Adaptee(); //网线
        Adapter adapter = new Adapter(adaptee); //转换器

        computer.net(adapter); //电脑连接转换器进行上网
    }
}

//成功的调用被适配的类中的方法

适用场景:
1、系统需要使用一些现有的类,而这些类的接口(如方法名) 不符合系统需要,甚至没有这些类的源码。
2、想创建一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存