GOF《设计模式》一书对Adapter模式是这样描述的:
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。
uml图如下所示:
例子如下:public interface Shape { public void display(); } public class XXCircle { public void displayCircle() { System.out.println("通过XXCircle.displayCircle()画圆"); } } /** * Adapter模式有两种类型: 1) 对象Adapter模式,它依赖于一个对象(适配器)包含另一个对象(被适配的对象)。 */ public class CircleObject implements Shape { public XXCircle circle; public CircleObject(XXCircle xxcircle) { circle = xxcircle; } public void display() { circle.displayCircle(); } } /** * 2) 类Adapter模式,它是通过多重继承来实现的(java中没有多继承,是通过接口来实现的)。 */ public class CircleClass extends XXCircle implements Shape { public void display() { super.displayCircle(); } } public class Client { public static void main(String[] args) { // 1) 对象Adapter模式,它依赖于一个对象(适配器)包含另一个对象(被适配的对象)。 XXCircle circle = new XXCircle(); CircleObject co = new CircleObject(circle); co.display(); // 2) 类Adapter模式,它是通过多重继承来实现的(java中没有多继承,是通过接口来实现的)。 CircleClass cc = new CircleClass(); cc.display(); } }
输出结果:通过XXCircle.displayCircle()画圆通过XXCircle.displayCircle()画圆