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();
    }
}

优势

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

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

相关推荐
考虑考虑7 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯8 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路11 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
像我这样帅的人丶你还14 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev16 小时前
GreenDAO → Room
android·java·kotlin
胡萝卜术21 小时前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
亦暖筑序21 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏1 天前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev1 天前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还2 天前
Java 后端详解(四):分页与搜索
java·javascript·后端