大白话 设计模式之适配器模式

定义

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口

那通俗点来说,啥是适配器呢,大家都知道港版的iphone的充电器,是不能直接在内地使用的,需要一个转换器才能使用,那么这个转换器就是所谓的适配器.

那么适配器能够给我们带来什么好处呢?

使用港版iPhone的同学都知道,充电要用转换器,那么你转换器内部是怎么转换的吗?你不知道,你也不需要知道,不关心内部具体实现,那么不就达到了高人所说的解耦的目的了吗,不就对具体实现不产生依赖了吗,回头你出国玩了,外国的插线板又不一样了,那怎么办? 直接再整个能用的转换器不就完了吗?
这同样不就符合了OO的开闭原则吗?

下面,我们就结合充电器这个例子,来写一个适配器的demo,首先,我们抽象一个充电器的接口,这个接口有一个充电的方法,其他所有的充电器都是它的不同实现而已

public interface Charger {
void electricity();
}

内地的充电器:

public class inLandCharger implements Charger {
public void electricity() {
    System.out.println("我正在使用内地的插座");
    }
}

香港的充电器:

public class HKCharger {
public void diffElectricity() {
System.out.println("我在使用HK的插座");
    }
}

大家看到香港的充电器和内地的充电器是不一样的,那么我们就需要一个适配器来帮忙转换:

public class adapter implements Charger {
public void electricity() {
    new HKCharger().diffElectricity();
    }
}

好了现在我们模拟使用一下:

  public static void main(String[] args) {
    //使用国行的同学是这样充电的
    Charger charger = new inLandCharger();

    charger.electricity();

    //使用港版的同学是这样充电的
    charger = new adapter();

    charger.electricity();

}

结果:

我正在使用内地的插座
我在使用HK的插座

到这里,我们就写好了一个适配器的demo,其实再牛逼的设计模式,也是一点点演进出来的,我们不要被一些专有名词吓到,用你自己的方式去理解就好!

转载于:https://www.cnblogs.com/j2eeDevelper/p/5202234.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值