#是配置模式有三种,分别为类的适配器模式,接口的适配器模式,还有对象适配器模式
#当希望把类转换成满足另一个实现的新接口的类的时候使用 class Source{ public void method1(){ System.out.println("source's method1"); } } interface Target { public void method1(); public void method2(); } class Adapter extends Source implements Target{ @Override public void method2(){ System.out.println("Adapter's method2"); } } public void main(String[] args){ Target target=new Adapter(); //这是类的适配器模式,target的实现类都具有Source类的功能 target.method2(); target.method1(); }
#对象适配器模式 --》当希望将一个对象转换成满足另一个新接口的对象时
class Source{ public void method1(){ System.out.println("source's method1"); } } interface Target { public void method1(); public void method2(); } class Adapter implements Target{ private Source source; public Adapter(Source source){ super(); this.source=source; } @Override public void method1(){ source.method1(); } @Override public void method2(){ System.out.println("Adapter's method2"); } }
#接口适配器模式--当不需要实现接口中的所有方法的时候使用
interface interface1{ void method1(); void method2(); void method3(); } abstract class abstract1 implements interface1{ @Override public void method1() {} @Override public void method2(){} @Override public void method3(){} } class RealClass extends abstract1{ @Override public void method1(){ } }