代理模式 vs 适配器模式

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

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

一、核心定义&目的

1. 适配器模式(Adapter)

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

2. 代理模式(Proxy)

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

二、直观例子(好记)

适配器

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

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

代理

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

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


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

  1. 意图不同

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

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

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

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

适配器

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

代理

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

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

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

相关推荐
许彰午7 天前
36_Java设计模式之代理模式
java·设计模式·代理模式
折哥的程序人生 · 物流技术专研10 天前
Java 23 种设计模式:从踩坑到精通 | 适配器模式 —— 让不兼容的接口也能一起工作
java·设计模式·面试·适配器模式·单一职责原则
devilnumber11 天前
静态代理 & 动态代理:实战运用 + 场景区别 + 怎么选
java·开发语言·代理模式
devilnumber11 天前
想真正吃透 + 灵活运用 Java 代理模式
java·开发语言·代理模式
故渊at16 天前
系列一:架构思想进阶 | 第3篇 SOLID 原则与设计模式实战:从“代码搬运工”到“架构师”的必经之路
观察者模式·设计模式·重构·架构·代理模式
basketball61618 天前
设计模式入门:5. 代理模式详解 C++实现
c++·设计模式·代理模式
2601_9611940218 天前
2026初级会计经济法基础知识点汇总
python·django·pdf·virtualenv·代理模式·pygame
2601_9611940218 天前
考研模拟卷谁的比较好|27李林合工大肖四肖八数学英语408PDF
考研·elasticsearch·全文检索·代理模式·lucene·桥接模式·访问者模式
basketball61619 天前
设计模式入门:3. 适配器模式详解 C++实现
c++·设计模式·适配器模式
晚风吹红霞19 天前
C++ stack 和 queue 完全指南:适配器模式与双端队列的奥秘
c++·算法·适配器模式