基本概念
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那个类可以一起工作。
适配器模式类结构图
应用场景
对于一个已经存在的类,如果它的接口或方法跟需求不匹配,但又不方便修改时,可以考虑使用适配器模式。其主要作用是希望复用一些现存的类,但接口又与复用环境要求不一致。举一个生活中最常见的例子如标准电压为220V,而手机充要求5V,则它们之间就需要一个电压适配器。
源码示例
1.期望的目标对象及方法
package com.spook.adapter;
/**
* 模拟期望的目标对象(也可以是接口)
*/
public class Target {
public void request() {
System.out.println("发出普通的请求");
}
}
2.需要适配的对象及方法
package com.spook.adapter;
/**
* 需要适配的类(也可以是接口)
*/
public class Adaptee {
public void specificRequest() {
System.out.println("发出特别的请求");
}
}
3.适配器类
package com.spook.adapter;
/**
* 适配器类
*/
public class Adapter extends Target {
/** 持有一个需要适配的对象 */
private Adaptee adaptee = new Adaptee();
@Override
public void request() {
// TODO Auto-generated method stub
/** 将不适合的方法或接口转化为期望目标的方法或接口 */
adaptee.specificRequest();
}
}
4.测试类
package com.spook.adapter;
/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Target target = new Adapter();
target.request();
}
}
运行测试类会输出如下内容:
发出特别的请求