美文网首页
Java设计模式---适配器模式

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

作者: 小白彡 | 来源:发表于2020-03-24 21:23 被阅读0次

举个老栗子

插两个孔的插头怎么能插入三个孔的插座呢,,这肯定都知道,中间加个转接头。
一头被两个孔的插一头插入三个孔的插座就可以了。。 那么 这个转接头就是个适配器了。。。。


u=2292860942,612161708&fm=26&gp=0.jpg

下面通过代码来展示一下这个逻辑:

先是三孔插座:

/**
 * 三孔插座
 */
public class ThreeHoleSocket {
    private ThreeHolePlug threeHolePlug;

    public ThreeHoleSocket(ThreeHolePlug threeHolePlug){
        this.threeHolePlug = threeHolePlug;
    }

    /**
     * 充电
     */
    public void charge(){
        if(threeHolePlug != null){
            threeHolePlug.insert();
        }else{
            System.out.println("插头未插入");
        }
    }
}

三孔插座要插入一个三孔的插头才能进行充电,只要是三孔的不管什么电器都可以,所以我们有一个三孔插头节接口:

public interface ThreeHolePlug {
    void insert();
}

这个接口里有个插入方法,就是用来插入三孔插座的。
接下来就是一个两孔插头了:

/**
 * 两孔插头
 */
public class TwoHolePlug {

    public void charge(){
        System.out.println("两孔插头--充电中");
    }
}

两孔插头也有一个充电的方法,但得要插入才能充电,现在三孔插座需要的是一个三孔类型的插座,但这个两孔的是不能够插进去的,这可怎么办。。。。。。。
这个时候就得来个转接头适配器了,先看看代码:

/**
 * 一面三孔一面两孔适配器
 */
public class ThreeHoleAdapter implements ThreeHolePlug{

    private TwoHolePlug twoHolePlug;

    public ThreeHoleAdapter(TwoHolePlug twoHolePlug){
        this.twoHolePlug = twoHolePlug;
    }
    /**
     * 插入
     */
    @Override
    public void insert() {
        twoHolePlug.charge();
    }
}

这个适配器实现了三孔插头方法,所以他是可以插入三孔插座的,现在这个适配器传进来一个两孔插头,就相当于两孔插头插入了这个适配器,只要等这个适配器再插入三孔插座,就可以充上电了,
下面看看咋充的电:

 TwoHolePlug twoHolePlug = new TwoHolePlug();
        //两孔插头插入适配器
        ThreeHoleAdapter threeHoleAdapter = new ThreeHoleAdapter(twoHolePlug);
        //适配器插入三孔插座
        ThreeHoleSocket threeHoleSocket = new ThreeHoleSocket(threeHoleAdapter);
        //开始充电
        threeHoleSocket.charge();

运行后:


QQ截图20200324211829.png

可以看到,两孔的插头成功插入并充上电了。。。

尤记得以前面试被问到适配器模式,脑子一热,心里想着一大堆,嘴上却在阿巴阿巴阿巴阿巴阿巴


u=4231373203,681615851&fm=111&gp=0.jpg

希望写过一遍能长点记性!!!

相关文章

  • 浅析Java设计模式【1】——观察者

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • 浅析Java设计模式【2】——适配器

    前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【3】—...

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • 浅析Java设计模式【3】——代理

    1. 前情内容 浅析Java设计模式【1】——观察者 浅析Java设计模式【2】——适配器 浅析Java设计模式【...

网友评论

      本文标题:Java设计模式---适配器模式

      本文链接:https://www.haomeiwen.com/subject/irwayhtx.html