设计模式之适配器模式

(15) 2024-02-29 12:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说设计模式之适配器模式,希望能够帮助你!!!。

#头条创作挑战赛#

设计模式之适配器模式_https://bianchenghao6.com/blog__第1张

  今天我们说适配器模式,这个模式很好理解,举个生活中的例子,出去旅游,先去了住的酒店,进入房间第一个要做的事情就是给手机充电,你发现酒店的插座和充电器不匹配,然后就拿出事先准备好的转换器,就可以两个接口的转换,实现了充电的功能。这个转换器,就是我们今天要说的适配器。

在展示代码之前,先看一下各个类之间的关系图

设计模式之适配器模式_https://bianchenghao6.com/blog__第2张

首先是接口Target,这个是相当于充电器的两个孔的插头,目的就是要把插座上的三个孔转成两个孔

public interface Target {
    /**
     * 定义新插座的规范是新插座的形状应该是一个双头插座
     */
    public void doubleHoleSocket();
}

三个孔的类Adaptee

public class Adaptee {
    /**
     * 需要被适配的功能
     * 这里用插座转换举例
     */
    public void commonThreeHoleSocket() {
        System.out.println("hi,我是一个常见的三孔插座");
    }
}

适配器类Adapter,就是转换器

public class Adapter extends  Adaptee implements Target{
    /**
     * 采用继承的方式实现转换功能
     */
    @Override
    public void doubleHoleSocket() {
        // 调用继承的方法,对其进行增强或处理
        this.commonThreeHoleSocket();
        System.out.println("==========开始转换==========");
        System.out.println("oh,我变成了两孔插座");
    }

}

使用类Client,也是测试用

public class Client {
    public static void main(String[] args) {
        Target newPlug = new Adapter();
        // 对于使用者来说,它只需要知道适配器提供了一个两孔插头即可
        newPlug.doubleHoleSocket();
        System.out.println("这是一个两孔插头");

    }
}

执行结果

设计模式之适配器模式_https://bianchenghao6.com/blog__第3张

从程序可以看出有很好的扩展性,在不破坏老代码的情况下,扩展新的功能。

好了,今天就到这里了,适合才是最好的,基础永不过时。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复