小白谈谈适配器模式

概念

适配器,我们最熟悉的就是笔记本电脑的适配器,用于转换我们笔记本的电压的,让原来不合乎我们的东西,经过适配器的转换,转变为适合我们的东西。适配器模式也是同样的道理,让原来不兼容的两个接口协同工作


实现

案例:自从家里养了只二哈,家里的鞋子就没有一双是完整的,明晚公司举行了一个年度晚会,就算不穿西装,也得穿得正正齐齐嘛,鞋子也得是个好的,晚上下班都已经10点多了,周围的门店也都关门了,找不到门店来买鞋,明早还要早点回去刚项目,这就让我着急死了,于是找包租婆寻求帮助。包租婆见我这么可怜,给了他儿子大胖的45码鞋子给我,可是我这个小脚只能穿得了42码的鞋子,这时候就需要一个鞋垫(适配器)进行解决。

首先定义一个要实现的目标接口:

/**
 * 定义一个我们最终要实现的目标接口
 */
public interface Target {

    //穿得进大码的鞋子
    public void suitBig();

}

定义我的小脚类:

/**
 * 定义一个被适配的类
 * 小脚,唯一的属性为一个最大能穿的进的码数
 */
public class SmallFoot {

    //定义一个最大能穿的进的码数
    private int maxSize = 42;

    //返回能接受的最大码数
    public int getMaxSize() {
        System.out.println("我的小脚最大能接受的码数为:" + this.maxSize);
        return maxSize;
    }
}

定义一个鞋垫的类,就是适配器:

/**
 * 定义一个鞋垫,能让我的小脚穿得进大码的鞋子
 * 鞋垫需要继承小脚的类,并且实现目标接口
 */
public class Insole extends SmallFoot implements Target{

    //使小脚实现穿45码的鞋子
    @Override
    public void suitBig() {
        int size = getMaxSize();
        size += 3;
        System.out.println("我现在能穿" + size + "码的鞋子了!");
    }
}

测试:

/**
 * 实现
 */
public class People {

    public static void main(String[] args) {
        Target man = new Insole();
        man.suitBig();
    }
}

实验结果:
在这里插入图片描述


优点:可以让任何两个没有关联的类一起运行,复用已有的类,使已有的类通过适配器模式来适应目标环境,低耦合,不用对原有的代码进行修改,遵循开闭原则

缺点:使用的适配器过多,会导致系统十分复杂,代码可读性较低,难以维护


本文的代码:https://pan.baidu.com/s/1Q5VTNBIX6H25oqitwz7rCw
提取码:90ql

发布了48 篇原创文章 · 获赞 0 · 访问量 659

猜你喜欢

转载自blog.csdn.net/weixin_44943485/article/details/105248747
今日推荐