设计模式之 适配器模式

113 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情

前言

适配器模式本质上是为了解决兼容的问题,在项目设计之初其实是用不到适配器模式的。通常是在项目的迭代过程中,有些功能或者接口,慢慢的满足不了后续的需求时做的妥协。

一般使用适配器我都是发现本来一对一的问题,逐渐的因为业务的升级而迭代进化导致一对二一对三,甚至一对多导致代码写起来十分冗余,但是使用适配器模式后也不能解决这个问题,但可以让你的代码可视化程度更高,理解起来更加容易。

应用场景

假设比如现在我有一台车他的轮子是公路胎,我在马路上跑的就很安静,正常无比,但是冬天会下雪,我的公路胎遇到雪地会打滑这时候我可以选择装一个防滑地刺来行使,但是适配器是指你与地面中间的那个转接层,也就是你又开发一个中间部件来对雪地进行兼容,雪地胎大大的,直接接上去驱动器还是使用汽车驱动,更极端一点你的汽车想跑铁轨,那你就造一个铁轨适配器,那他肯定能跑铁轨并且也能开起来,但是注意驱动还是汽车驱动。现在你又要能跑水路,那你需要做个轮船适配器,由汽车驱动,但是实际接触水面是轮船。

借用设计模式网站的图,侵权删

image.png

具体代码实现

//客户端类:向上网 ,插不上网线
public class Computer {

    //我们的电脑需要连接上转换器才能上网
    public void net(NetToUsb adapter){
        //上网的具体实现,找一个转接头
        adapter.handleRequest();
    }

    public static void main(String[] args) {
        Computer computer=new Computer();
        Adaptee adaptee=new Adaptee();
        Adapter2 adapter=new Adapter2(adaptee);
        computer.net(adapter);
    }


}