前面我们讲了创建型设计模式 那么接下来开始接触结构型设计模式
结构型设计模式 能够帮助我们解耦 从而扩大整体的类结构 方便后续扩展
适配器模式:就相当于我们的转接口 比如我的耳机是原型插口 手机比较新 是TabC接口 那么就需要一个转换头 也就是适配器
基本使用
目标接口(target) : TabC接口 用户所期待的接口
需要适配的类(adaptee):耳机
适配器(adapter):转换头
关系
用户->tatget->adapter->adaptee
public class HeadSetAdaptee {
public void listenToMusic() {
Log.d("HeadSetAdaptee", "可以戴上听歌了");
}
}
interface ITabCTarget {
void listenerToMusic();
}
public class TransAdapter implements ITabCTarget {
HeadSetAdaptee headSetAdaptee;
public TransAdapter(HeadSetAdaptee headSetAdaptee) {
this.headSetAdaptee = headSetAdaptee;
}
@Override
public void listenerToMusic() {
headSetAdaptee.listenToMusic();
}
}
public class Client {
public void useHeadSetToListenToMusic() {
ITabCTarget iTabCTarget = new TransAdapter(new HeadSetAdaptee());
iTabCTarget.listenerToMusic();
}
}
使用组合方式替代 继承 所以需要传入HeadSetAdaptee 对象 到 TransAdapter 中
一般运用于系统升级的时候 对于旧接口的兼容