适配器模式定义
将一个类接口变成用户所期待的接口类型,使其能够将两个能在一起工作的类,变成一起工作。
举例
苹果电脑type-c转接头也是适配器模式思想,它能够将HDMI/Type A/内存卡槽转成Type C接口,就是将一种接口转化成另一种接口,使得原来不能一起工作的两个接口现在能够一起工作。
职责
1.Target目标角色
该角色定位需要将源角色经过适配器,包装成其期待的接口。
2.Adaptee源角色
它是已经存在的,并且需要被包装的类,经过适配器包装,能够成为新的角色类。
3.Adapter适配器角色
适配器是适配器模式的核心,主要职责就是将源角色变成目标角色。
/**
* 目标类接口
* Created by jianw.li on 2017/12/3.
*/
public interface Target {
void request();
}
/**
* 原角色
* Created by jianw.li on 2017/12/3.
*/
public class Adaptee {
public void doSomething() {
System.out.println("执行原方法");
}
}
/**
* 适配器
* Created by jianw.li on 2017/12/3.
*/
public class Adapter extends Adaptee implements Target {
/**
* 将原方法封装成目标方法
*/
public void request() {
super.doSomething();
}
}
/**
* Created by jianw.li on 2017/12/3.
*/
public class Client {
public static void main(String[] args) {
Target target = new Adapter();
target.request();
}
}
适配器优点
1.适配器模式可以将两个无关的类联系到一起。
2.增加类的透明性,在我们访问Targer类时,具体实现是委托给Adaptee类的,而高层也不需要知道其中具体实现。
3.提高复用性,灵活性。在不影响原角色类情况下,添加新需求,若需求变更删除适配器,也不影响原角色类的使用。