适配器模式

适配器模式就是将某个类的接口转换为客户端期望的另一个接口表示。

分为

  • 类的适配器模式
  • 对象的适配器模式
  • 接口的适配器模式

类的适配器模式:

public class MySource {
    public void method1(){
        Log.i("sml", "method1: ......原方法");
    }
}

public interface Targetable {
    // 新方法
    void method2();
}

public class Adapter extends MySource implements Targetable{
    @Override
    public void method2() {
        method1();
        Log.i("sml", "method1: ......新方法");
    }
}

// 适配器模式
Adapter adapter = new Adapter();
adapter.method2();

对象的适配器模式:

基本思路和类的适配器模式相同,只是将Adapter 类作修改,这次不继承Source 类,而是持有 Source 类的实例,以达到解决兼容性的问题。

public class Wrapper implements Targetable{
    
    private MySource mySource;

    public Wrapper(MySource mySource) {
        this.mySource = mySource;
    }

    @Override
    public void method2() {
        mySource.method1();
    }
}

MySource mySource = new MySource();
Wrapper wrapper = new Wrapper(mySource);
wrapper.method2();

接口的适配器模式:

接口的适配器是这样的:有时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行

// 定义三个接口
public interface Target {   
    void typec();
    void typec2vga();
    void typec2hdmi();
}

// 定义一个抽象类
public abstract class Adapter implements Target{

    public void typec() { }
    
    public void typec2vga() { }
    
    public void typec2hdmi() { }
}

// 适配器
public class VgaAdapter extends Adapter{
    
    public void typec() {
        System.out.println("信息从Typec口的手机输出。");
    }
    
    public void typec2vga() {
        System.out.println("接收到Type-c口信息,信息转换成VGA接口中...");
        System.out.println("信息已转换成VGA接口,显示屏可以对接。");
    }
}

参考博客:https://www.cnblogs.com/luohanguo/p/10334291.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值