意图:
将一个类的接口转化成用户希望的另一个接口
使得原本由于接口不兼容而不能一起工作的那些类一起工作。
举例:
一个系统的一个功能模块原本是自己实现的,后来发现了一个实现相对完整的第三方接口,引用过来发现第三方的接口方法跟自己的接口不一致,此时添加一个适配器来兼容第三方接口。
类图:
代码如下:
/**
*
* @ClassName: IPicture
* @Description: 原系统接口
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
*/
public interface IPicture {
String getRGB();
}
/**
*
* @ClassName: MyPicture
* @Description: 原系统实现类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
*/
public class MyPicture implements IPicture {
public String getRGB() {
return "GGB";
}
}
/**
*
* @ClassName: NewPIcture
* @Description: 第三方
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
*/
public class NewPIcture {
public String getR(){
return "R";
};
public String getG(){
return "G";
};
public String getB(){
return "B";
};
}
/**
*
* @ClassName: PictureAdapter
* @Description: 适配器类
* 继承第三方类 实现 原接口 对第三方方法进行包装
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
*/
public class PictureAdapter extends NewPIcture
implements IPicture{
public String getRGB() {
String RGB = getG() + getG() + getB();
return RGB;
}
}
/**
*
* @ClassName: Yufan
* @Description: 适配器测试类
* @author 雨ゆこ
* @date 2018年5月1日
* @version yuko1.0
*/
public class Yufan {
public static void main(String[] args) {
IPicture p = new PictureAdapter();
System.out.println(p.getRGB());
}
}