简介
可以使一个接口可以变成另一个接口,可以使原来不兼容的类可以一起工作,适配器分为对象适配器(通过组合)、类适配器(通过继承),属于结构型模式。
适用场景
1、方法和需求不兼容的时候,可以使用
优点
1、提供类的复用和透明性,原来的接口不需要改变
2、程序解耦,提供扩展性
3、符合开闭原则
缺点
1、增加复杂性
2、增加代码可读性
代码示例
适配者模式有这几个对象:被适配者、目标、适配者。
类适配器
具体代码为:
目标接口
public interface Target {
void getData();
}
被适配者
public class Adaptee {
public void adapteeGetData(){
System.out.println("被适配类方法");
}
}
适配者
public class Adapter extends Adaptee implements Target {
public void getData() {
super.adapteeGetData();
}
}
测试类
public class AdapterTest {
public static void main(String[] args) {
Target target = new Adapter();
target.getData();
}
}
对象适配器
具体代码
目标类:
public interface Target {
void getData();
}
被适配者类
public class Adaptee {
public void adapteeData(){
System.out.println("被适配者方法");
}
}
适配者类
public class Adapter implements Target {
private Adaptee adaptee = new Adaptee();
public void getData() {
adaptee.adapteeData();
}
}
测试类
public class AdapterTest {
public static void main(String[] args) {
Target target = new Adapter();
target.getData();
}
}
源码分析
jdk中应用
XmlAdapter
是一个适配者
Spring中应用
spring aop中使用了适配器模式。
Spring MVC中应用
HandlerAdapter
是适配者接口类,Controller
是被适配者,SimpleControllerHandlerAdapter
是具体的适配者。
本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载