适配器模式

    xiaoxiao2022-07-12  158

    适配器模式主要分三类:(1)类适配器模式(2)对象适配器模式(3)接口适配器模式

    类适配器(通过继承来实现适配器)与对象适配器(通过组合来实现适配器)的使用场景一致,只是实现手法稍有区别。主要是处理当存在两个接口A,B。其中B接口有我们调用的b(),但是我们又必须通过访问接口A去调用B的b()。

    接口适配器模式(通过抽象类来实现适配器)。处理有一个接口A里面有a,b,c,d等方法,但是我们只想具体实现某个或几个方法。

    类适配器的实现:

    接口A:

    public interface A {

        void a(); }

    接口B:

    public interface B {     void b(); }

    B的实现类

    public class BClass implements B {     @Override     public void b() {         System.out.println("B");     } }

    适配器类:

    public class Adapter extends BClass implements A { @Override public void a() { b(); } public static void main(String[] args){ Adapter adapter=new Adapter(); adapter.a(); } }

    对象适配器实现:

    接口A,B和上述一样

    适配器类:

    public class Adapter implements A { private B b; public Adapter(B b) { this.b = b; } @Override public void a() { b.b(); } public static void main(String[] args){ Adapter adapter=new Adapter(new B() { @Override public void b() { System.out.println("B"); } }); adapter.a(); } }

    接口适配器模式实现:

    接口A:

    public interface A { void a(); void b(); void c(); void d(); void e(); }

    适配器:

    public abstract class Adatper implements A{ @Override public void a() { } @Override public void b() { } @Override public void c() { } @Override public void d() { } @Override public void e() { } }

    A实现

    public class AClass extends Adatper{ @Override public void a() { System.out.println("AAAAAA"); } }
    最新回复(0)