适配器模式适用条件:
当一个接口中抽象方法过多,但是我只要使用其中一部分的时候,就可以使用适配器设计模式。
适配器模式原理介绍:
我们定义接口后,若接口中有许多方法,但是我们只需要使用一部分时,我们就可以再编写一个类继承这个接口,即中间类(适配器类,一般命名为接口名+Adapter),然后重写所有的方法为空实现,就是方法内什么都不写,再让真正的实现类继承中间类,即让需要使用接口中方法的类继承我们创建的中间类,然后重写要使用的方法即可。此外,创建适配器类的对象是没有意义的,所以编写适配器类时用abstract修饰。
接下来我将通过简单的代码演示:
编写一个接口Inter:
public interface Inter {
//定义五个抽象方法
public abstract void method1();
public abstract void method2();
public abstract void method3();
public abstract void method4();
public abstract void method5();
}
这个接口中有五个抽象方法,如果我们直接再实现类中执行接口,必须将接口中的所有抽象类方法全部重写,如下图:
因此我们采用适配器模式,编写中间类(适配器类)InterAdapter:
public abstract class InterAdapter implements Inter {
@Override
public void method1() {
}
@Override
public void method2() {
}
@Override
public void method3() {
}
@Override
public void method4() {
}
@Override
public void method5() {
}
}
全部置为空实现即可
再编写实现类InterImplement:
假如我们只使用方法三,那我们只重写方法三即可,使用到接口中的什么方法就重写什么方法。
public class InterImplement extends InterAdapter {
@Override
public void method3() {
System.out.println("使用第三个方法");
}
}
下面我们来编写测试类Test调用一下method3
Test类:
public class Test {
public static void main(String[] args) {
Inter inter = new InterImplement();
inter.method3();
}
}