代理模式 vs 适配器模式

代理模式 vs 适配器模式(面试极简版,一面高频)

核心一句话区分:适配器是「改接口、做兼容」;代理是「加控制、做增强」

一、核心定义&目的

1. 适配器模式(Adapter)

  • 作用:转换接口 ,让两个接口不匹配的类正常协作
  • 场景:老接口/第三方接口、格式不一样,我要"转一下"才能用
  • 关键词:兼容、转换、适配、接口不一致

2. 代理模式(Proxy)

  • 作用:控制访问、增强功能,不修改原类代码,在调用前后加逻辑
  • 场景:权限、日志、缓存、延迟加载、远程调用、事务
  • 关键词:控制、拦截、增强、代理访问、功能附加

二、直观例子(好记)

适配器

手机Type-C 耳机,插老式3.5mm圆孔 → 用转接头

两个接口不一样,转接口才能用 = 适配器

代理

你找明星办事,不直接联系本人,先找经纪人

经纪人帮你拦截、安排、传话、控节奏 = 代理


三、关键区别(面试直接背)

  1. 意图不同

    • 适配器:解决接口不兼容,让异类接口统一
    • 代理:控制/增强目标对象行为,接口完全不变
  2. 接口是否一致

    • 适配器:目标接口和原接口不同,要做转换
    • 代理:代理类和被代理类接口完全一致,对外透明
  3. 使用时机

    • 适配器:已有类、接口不匹配,事后补救兼容
    • 代理:主动设计,前置做访问控制/功能增强

四、Java 常见落地(面试加分)

适配器

  • IO 流:InputStreamReader(字节流→字符流)
  • 老系统接口改造、第三方SDK接口适配

代理

  • 静态代理、JDK动态代理(接口代理)、CGLIB代理
  • Spring AOP、MyBatis Mapper代理、延迟加载、权限校验

五、一句话面试标准答案(直接口述)

适配器模式主要用来转换不兼容的接口,解决接口匹配问题;代理模式接口保持一致,主要用来对目标对象做访问控制、功能增强,比如日志、权限、缓存等。

相关推荐
Lam Tang4 天前
APS 系列文章10
java·代理模式
Lam Tang4 天前
APS 系列文章 08
java·代理模式
wangjialelele4 天前
动态规划DP经典题型总结(Java、C++):路径、子数组、子序列、背包问题详解
java·c++·算法·面试·动态规划·代理模式
聪明蛋子哟4 天前
从MCP到A2A再到Proxy:Agent-工具协议的三种代理模式
代理模式
Lam Tang4 天前
APS 系列文章 09
java·代理模式
Lam Tang5 天前
APS 系列文章 01
java·代理模式
AI人工智能+电脑小能手7 天前
大白话说Java设计模式-14-适配器模式(业务实战篇)
java·设计模式·适配器模式·系统兼容·多渠道对接
只吃不吃香菜10 天前
Windows 下基于 YAML 规则的指定域名分流:以哔哩哔哩为例
网络·网络协议·计算机网络·网络安全·代理模式
zhongjunyao13 天前
Spec-Driven Development (SDD): The Definitive 2026 Guide
javascript·spring boot·python·eclipse·代理模式
莫得感情 o15 天前
设计模式 09 · 适配器模式
设计模式·适配器模式