- 定义:将一个类的接口转换成客户期望的另一个接口
- 使原本接口不兼容的类可以一起工作
- 适用场景
已经存在的类,它的方法和需求不匹配时(方法结果相同或相似)
不是软件设计阶段考虑的设计模式,随着软件的维护,不同产品,不同厂家造成功能类似而接口不相同情况下的解决方案
- 实现
类适配器
示例代码
//标准接口
public interface Target {
public void request();
}
// 具体目标类
public class ConcreateTarget implements Target{
public void request() {
System.out.println("一般使用");
}
}
//已经存在的类,但是不符合既有的标准接口
public class Adaptee {
public void adapteeRequest(){
System.out.println("被适配的方法");
}
}
// 适配器类,继承了被适配类,同时实现标准接口
public class Adapter extends Adaptee implements Target{
public void request() {
super.adapteeRequest();
}
}
public class Test {
public static void main(String[] args) {
// 使用适配类
Adapter adapter=new Adapter();
adapter.request();
}
}
对象适配器
// 适配器类,只实现标准接口,不继承
public class Adapter implements Target{
private Adaptee adaptee=new Adaptee();
public void request() {
adaptee.adapteeRequest();
}
}