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

举个老栗子

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


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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.适配器模式概述 适配器就如同排插一样,当我们电视或者电磁炉是两孔插头,而插座是三孔插座时,我们通常会拿一个三孔...
    Erichc阅读 1,607评论 0 0
  • 定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在...
    步积阅读 5,403评论 0 1
  • 适配器模式的官方定义是:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起...
    li_jun阅读 2,463评论 0 0
  • Java设计模式之适配器模式 回顾 上一期设计模式跟大家分享了创建模式的最后一个(生成器模式),如果小伙伴们掌握的...
    icyage阅读 2,812评论 0 0
  • 适配器模式,属于结构性模式,更加关心的是代码的结构和复用,而不是对象的创建。 适配器模式:别名Wrapper,为了...
    yiqiquhuxi阅读 3,865评论 0 5

友情链接更多精彩内容