介绍
适配器模式(Adapter Pattern)属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。
在程序软件世界中,我们需要使用某些成熟的组件,但是接口或者方法定义又使得我们无法直接使用,而又不能去修改运行稳定的代码。重新开发的话成本和代价都很高,这可以通过中间加一层适配层来转换组件与新使用方的关系,从而达到复用组件的目的。这就是今天所要说到的适配器模式在软件设计领域的使用,很多开源框架中也经常能够看到。
优点
- 可以让任何两个没有关联的类一起运行
- 提高了类的复用
- 易于扩展
缺点
- 适配器模式过多地使用,系统会比较凌乱,不易把握
- 只能适配一个适配者类
应用
使不兼容的对象能够相互合作,实现方式有类继承,对象继承,缺省模式
实现
关键代码:适配器类通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者
class SDCardImp {
public void readSD(){
System.out.println("支持SD卡");
}
}
interface TargetAble {
void readSD();
void readTF();
}
class Adapter extends SDCardImp implements TargetAble{
@Override
public void readTF() {
System.out.println("支持TF卡");
}
}
class AdapterDemo {
public static void main(String[] args) {
Adapter adapter = new Adapter();
adapter.readSD();
adapter.readTF();
}
}
运行结果:
支持SD卡
支持TF卡