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


    定义

    适配器模式(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,其实再牛逼的设计模式,也是一点点演进出来的,我们不要被一些专有名词吓到,用你自己的方式去理解就好!

  • 相关阅读:
    foreach
    if
    注意事项
    Maven测试
    课程评价
    个人总结
    HTML表格CSS美化
    让多个输入框对齐
    CSS样式写在JSP代码中的几种方法
    日常
  • 原文地址:https://www.cnblogs.com/j2eeDevelper/p/5202234.html
Copyright © 2020-2023  润新知