意图:
将一个类的接口转化成用户希望的另一个接口
使得原本由于接口不兼容而不能一起工作的那些类一起工作。
举例:
一个系统的一个功能模块原本是自己实现的,后来发现了一个实现相对完整的第三方接口,引用过来发现第三方的接口方法跟自己的接口不一致,此时添加一个适配器来兼容第三方接口。
类图:
代码如下:
/** * * @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()); } }