什么是适配器模式
适配器模式也称为变压器模式,它是把一个类的接口转换成客户端所期望的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够一起工作。适配类可以根据所传递的参数返还一个合适的实例给客户端。
适配器模式主要应用于“望复用一些现存的类,但是接口又与复用环境要求不一致”的情况,在遗留代码复用、类库迁移等方面非常有用。同时,适配器模式有对象适配器和类适配器两种形式的实现结构,但是类适配器采用“多继承”的实现方式,会引起程序的高耦合,所以一般不推荐使用;而对象适配器采用“对象组合”的方式,耦合度低,应用范围更广。
适配器模式的设计类图如下所示
适配器模式代码描述
Target目标角色;Adaptee源角色;Adapter适配器角色。
Target
public interface Target {
void request();
}
Adaptee
public class Adaptee {
public void doSomething(){
System.out.println("I'm kind of busy, leave me alone,please");
}
}
Adapter
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
super.doSomething();
}
}
ConcreteTarget
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("if you need any help,please call me");
}
}
Client
public class Client {
public static void main(String[] args) {
// 原有的业务逻辑
Target target = new ConcreteTarget();
target.request();
// 现在增加了适配器角色后的业务逻辑
Target target2 = new Adapter();
target2.request();
}
}