1、概述
顾名思义,就是适配合适的东西到自己身上,不合适多余的东西不需要。一个类在实现一个接口时,必须要实现接口中所有的方法,但是这个类可能只需要接口中的一个方法,如果全部实现那将会造成代码不美观,太冗余。
就像承包一个工程,一个人如果处理工程的所有事情和流程,很容易把他累趴下,所有我们可以找出他擅长干的事情交给他,其余的工作再找适合这些工作的人处理,这样就提高了工作的效率。
2、示例代码
A类通过适配器实现了适合自己的方法,B类通过适配器实现了适合自己的方法,不用实现接口中的所有方法,这就是适配器设计模式。
①A接口
public interface A { void m1(); void m2(); void m3(); void m4(); void m5(); void v6(); }
②BAdapter.java(B类的适配器)
public abstract class BAdapter implements A{ //适配B类的m1方法 @Override public abstract void m1(); @Override public void m2() {} @Override public void m3() {} @Override public void m4() {} @Override public void m5() {} @Override public void m6() {} }
③CAdapter.java(C类的适配器)
public abstract class CAdapter implements A{ @Override public void m1() {} //适配C类的m2方法 @Override public abstract void m2(); @Override public void m3() {} @Override public void m4() {} @Override public void m5() {} @Override public void m6() {} }
④B.java
//B类只需继承适配器即可实现适合自己使用的方法 public class B extends BAdapter{ @Override public void m1() { System.out.println("B类继承了适配器,只重写了m1方法。。。"); } }
⑤C.java
//C类只需继承适配器即可实现适合自己使用的方法 public class C extends CAdapter{ @Override public void m2() { System.out.println("C类继承了适配器,只重写了m2方法。。。"); } }
⑥Test.java(测试类)
public class Test { public static void main(String[] args) { B b = new B(); b.m1(); C c = new C(); c.m2(); } }
3、运行结果