适配器模式
- 作为两个不兼容的接口之间的桥梁。
- 属于结构型模式
1.类适配器模式
要访问的方法不在合适的接口里
Adapter类通过继承 src类,实现 dst 类接口,完成src->dst的适配
//适配器模式 继承目的类 实现源接口
//Rest --> Work
class AdapterRest extends WorkA implements Rest {
public void doRest() {
doWork();
}
}
优点:
- 可重写src类的方法
缺点:
- 所有类适配器需要继承src类
- 要求dst必须是接口
2.对象适配器模式
持有 src类,实现 dst 类接口,完成src->dst的适配
//对象适配器
class AdapterRest implements Rest{
private Work work;
public AdapterRest(Work work){
this.work = work;
}
public void doRest() {
work.doWork();
}
}
测试:
AdapterRest adapter = new AdapterRest(new WorkA());
adapter.doRest();//do work A
3.接口适配器
想要使用接口中的某个或某些方法
可以使用抽象类来实现接口,并不对方法进行实现
然后我们再继承这个抽象类来通过重写需要的方法的方式来实现
这个抽象类就是适配器。
abstract class Adapter implements Rest{}
class AdapterRest extends Adapter{
public void doRest() {
System.out.println("do rest by adapterRest");
}
}