JAVA设计模式——(1)适配器模式

JAVA设计模式------(1)适配器模式

目的

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。

理解

可以想象成一个国标的插头,结果插座是德标的,这会想要使用这个插座,就需要一个德标转国标的适配器,那么这个适配器 需要继承 德标(源角色)能够充电的能力(或者其他能力)吧,还要具备转换为国标(目标角色)的能力,那国标就是新需求,需要实现接口

具体而言,适配器具备源角色的功能,又能扩展目标角色的功能。

实现

源角色:

java 复制代码
package cn.sh.designepattern.example02;

/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/19 19:55
 * @Contact 643947568@qq.com
 */
public class OuBiao {

    public void chargeOuBiao(){
        System.out.println("欧标充电器充电");
    }
}

目标角色:

java 复制代码
package cn.sh.designepattern.example02;

/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/19 19:55
 * @Contact 643947568@qq.com
 */
public interface GuoBiao {

    public void chargeGuoBiao();

}

适配器:

java 复制代码
package cn.sh.designepattern.example02;

/**
 * @Author song
 * @Version 0.0.1
 * @Date 2025/4/19 19:56
 * @Contact 643947568@qq.com
 */
public class ChargerAdapter extends OuBiao implements GuoBiao{

    @Override
    public void chargeGuoBiao() {
        super.chargeOuBiao();
        System.out.println("国标充电");
    }

    public static void main(String[] args) {
        GuoBiao guoBiao = new ChargerAdapter();
        guoBiao.chargeGuoBiao();
    }
}

优势

对于已经投产的系统功能进行扩展,需要使用已有类,但是这个类不符合系统重的接口,则可以使用适配器模型,将这个类进行转换,转换成符合系统接口、可以使用的类。

另外适配可以重写一些被适配类的行为,增强其功能或者修改部分功能。

相关推荐
pshdhx_albert6 小时前
AI agent实现打字机效果
java·http·ai编程
沉鱼.446 小时前
第十二届题目
java·前端·算法
赫瑞7 小时前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
周末也要写八哥8 小时前
多进程和多线程的特点和区别
java·开发语言·jvm
惜茶9 小时前
vue+SpringBoot(前后端交互)
java·vue.js·spring boot
杰克尼10 小时前
springCloud_day07(MQ高级)
java·spring·spring cloud
NHuan^_^11 小时前
SpringBoot3 整合 SpringAI 实现ai助手(记忆)
java·人工智能·spring boot
Mr_Xuhhh11 小时前
从ArrayList到LinkedList:理解链表,掌握Java集合的另一种选择
java·数据结构·链表
错把套路当深情12 小时前
Java 全方向开发技术栈指南
java·开发语言
han_hanker12 小时前
springboot 一个请求的顺序解释
java·spring boot·后端