Java的适配器模式

所谓适配器模式,其实很简单,就是将一个类的接口转换成客户端所期待的另一个接口,使得原本不兼容的两个类可以一起工作。

假设我们有一个Type-c接口,但是要使用的接口确实usb的接口,这时候要怎么办呢?解决方法就是用一个适配器将Type-c类转换成usb类,这样我们就能使用这个Type-c接口了。

实现适配器模式有两种方法,分别是组合方式和继承方式。

1.组合方式

组合方式就是讲被适配的对象组合到适配器类中,在这里被适配对象就是就是Type-c接口。

2.继承方式

继承方式就是通过多重继承不兼容的接口以匹配目标接口。

实现代码如下:

Usb.java
package com.muggle.Ada;

public class Usb {
    public void useUsb() {
        System.out.println("使用了usb接口");
    }
}


Typec.java
package com.muggle.Ada;

public interface Tyepec {
    public void useTypec() ;
}


Adapter.java
package com.muggle.Ada;
//使用组合方式实现适配器模式
public class Adapter implements Tyepec {
    private Usb plug;

    public   Adapter(Usb plug) {
        // TODO Auto-generated constructor stub
        this.plug=plug;
    }
                                                                                                                                                                                                                                                   
    @Override
    public void useTypec() {
        // TODO Auto-generated method stub
        plug.useUsb();
        System.out.println("完成转化使用了Type-c接口");
        
    }

}

newAdapter.java
package com.muggle.Ada;

public class newAdapter extends Usb implements Tyepec {
  //使用继承方式实现适配器模式  
    @Override
    public void useTypec() {
        // TODO Auto-generated method stub
        this.useUsb();
        System.out.println("完成转化使用了Type-c接口");
    }

}

TestDrive.java
package com.muggle.Ada;


public class TestDrive {

    public static void main(String[] args) {
        Tyepec tyepec=new Adapter(new Usb());
        tyepec.useTypec();
        
        Tyepec newtypec=new newAdapter();
        newtypec.useTypec();
    }

}

运行结果如下:

使用了usb接口
完成转化使用了Type-c接口
使用了usb接口
完成转化使用了Type-c接口

这样我们就使用了适配器模式的两种方法对usb类进行了转换。

相关推荐