结构型模式之适配器模式
结构型模式分为类结构型模式和对象结构型模式;其中类结构型模式采用的是继承的方式来实现,而对象结构型模式采用的是聚合来实现的。
角色:
- 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
- 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
- 适配器(Adapter)类:它是一个转换器,通过继承或聚合适配者的对象,把适配者接口转换成目标接口,让客户通过按目标接口的格式访问适配者。
类适配器模式
实现方法:继承适配者类,实现目标接口。
/**
* 适配器类
* TfCardImpl -- 适配者类
* SDCard -- 目标接口
*/
public class SDAdapterTF extends TfCardImpl implements SDCard {
@Override
public String readSD() {
System.out.println("adapter read TF card");
return readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write TF card");
writeTF(msg);
}
}
对象适配器模式
实现方法:实现目标接口,聚合适配者类。
/**
* 适配器类
*/
public class SDAdapterTF implements SDCard {
// 声明适配者类
private TFCard tfCard;
public SDAdapterTF(TFCard tfCard) {
this.tfCard = tfCard;
}
@Override
public String readSD() {
System.out.println("adapter read TF card");
return tfCard.readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write TF card");
tfCard.writeTF(msg);
}
}