适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
1.优点
- 客户端通过适配器可以透明地调用目标接口。
- 复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。
- 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。
2.代码实例
2.1 需要兼容的接口
代码语言:javascript复制public interface Target {
/**
* 功能描述:
* 〈定义一个通用的请求〉
*
* @params : []
* @return : void
* @author : cwl
* @date : 2019/6/24 10:01
*/
void request();
}
2.2 需要被兼容的接口
代码语言:javascript复制//可以是一个类,如果需要兼容多个,那么采用多实现来兼容多个
public class Adapter {
/**
* 功能描述:
* 〈一个特殊需要被兼容的请求〉
*
* @params : []
* @return : void
* @author : cwl
* @date : 2019/6/24 10:03
*/
public void specificRequest() {
System.out.println("适配者中的业务代码被调用!");
}
}
2.3 具体调用的类
代码语言:javascript复制public class ClassAdapter extends Adapter implements Target{
@Override
public void request() {
//调用父类需要兼容的方法
specificRequest();
}
}
2.4 测试实例
代码语言:javascript复制public class ClassAdapterTest {
public static void main(String[] args) {
System.out.println("类适配器模式测试:");
Target target = new ClassAdapter();
target.request();
}
}