定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式

思考到某些产品的性能很类似,如果想兼容其它产品,然而又不想思考太多的对象辨别或者if else, 能够用适配器模式来适配对象。

在产品迭代的过程中常常有不同的版本,尽管版本不同,然而大体上的性能和接口差不多,只是具体的实现有些微的区别,这个时候能够在前面的迭代零碎中一直适配最新的产品就能够了。

//产品对立接口interface AsianCarRun {    public void run(String carType, int speed);}
//被兼容产品的接口interface ChinaCarRun {    public void BiYaDiRun(int speed);    public void HongQiRun(int speed);}
//被兼容产品1public class HongqiCar implements ChinaCarRun{    @Override    public void BiYaDiRun(int speed) {    }    @Override    public void HongQiRun(int speed) {        System.out.println("this is HongQi running, and the speed is: "+ speed);    }}
//被兼容产品2public class ChangaAnCar implements ChinaCarRun{    @Override    public void BiYaDiRun(int speed) {        System.out.println("this is BiYaDi running, and the speed is: "+speed);    }    @Override    public void HongQiRun(int speed) {    }}
//兼容主体类产品public class AsianCar implements CarRun {    @Override    public void run(String carType, int speed) {        AsianCarAdapter carAdapter = new AsianCarAdapter(carType);        carAdapter.run(carType,speed);    }}
//适配器public class AsianCarAdapter implements CarRun{    ChinaCarRun chinaCarRun;    public AsianCarAdapter(String carType) {        if(carType == "HongQi"){            chinaCarRun = new HongqiCar();        }        if(carType == "BiYaDi"){            chinaCarRun = new ChangaAnCar();        }    }    @Override    public void run(String carType,int speed) {        if(carType == "HongQi"){            chinaCarRun.HongQiRun(speed);        }        if(carType == "BiYaDi"){            chinaCarRun.BiYaDiRun(speed);        }    }}
测试类:public class AsianCarTest {    @Test    public void runTest() {        AsianCar asianCar = new AsianCar();        asianCar.run("HongQi",120);    }}测试后果:this is HongQi running, and the speed is: 120