Java 设计模式之--------适配器模式

        适配器就是一种中间件,它存在于不匹配的两者之间,将不匹配变得匹配,相当于我们常见的转接头(万恶的某果取消3.5mm耳机孔了解一下,还有那么多跟风的)

      适配器有三种:类适配器,对象适配器,接口适配器     前两种有些类似 ,第三种有些许不同

1、类适配器 

   通过继承来实现调用其他类的方法。假如有接口A和B,现在想不改变A的前提下去调用B的方法,这时就可以做一个适配器来做个中转,先实现接口A   然后继承接口B的实现类,这样就可以在中间类去调用接口B中的方法了,也就是可以在中间类实现A中方法的时候去调用B的方法。

public interface A{

     public void Arun();

public interface B{

   public void Brun();

}

public class BImpl implements B {

    @Override

    public void Brun(){

        System.out.println("B is run");

    }

}

 

//适配器

public class AAdapter extends Bimpl implements A  {

     @Override

      public void Arun() {

           this.Brun();   

      }

}

 

2、对象适配

还是一样的场景。接口A和B,不一样的处理,创建适配器中间类实现A,然后在中间类中有私有属性B,通过b去掉用他的方法

public interface A{

     public void Arun();

public interface B{

   public void Brun();

}

public class BImpl implements B {

    @Override

    public void Brun(){

        System.out.println("B is run");

    }

}

//适配器

public class AAdapter implements A {

    private B b;

    public AAdapter(B b) {

        this.b = b;

    }

    @Override

   public void Arun() {

       b.Brun();

   }

}

 

3、接口适配

这个场景就和以上不同了,现在有接口A,我们想用他的某一些方法而不是全部,如果实现A那么需要实现全部的方法,即使不写方法体,这时候我们就可以创建中间类去实现A,这个类是个抽象类,我们再去实现这个抽象类,重写我们需要的方法

public Interface A{

    public void a();

    public void b();

    public void c();

public abstract Aapter implements A {

   @Override

   public void a(){};

 @Override

   public void b(){};

 @Override

   public void c(){};

}

public b extends Adapter {

    @Override

   public void a(){

     System.out.println("我只需要a");  

}

}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值