代理模式 vs 适配器模式

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

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

一、核心定义&目的

1. 适配器模式(Adapter)

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

2. 代理模式(Proxy)

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

二、直观例子(好记)

适配器

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

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

代理

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

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


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

  1. 意图不同

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

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

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

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

适配器

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

代理

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

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

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

相关推荐
雾喔17 小时前
算法练习5
算法·代理模式
q567315234 天前
人工智能训练数据采集:稳定代理IP高并发方案全解析
人工智能·爬虫·网络协议·tcp/ip·代理模式·代理ip
IT小盘6 天前
05-企业项目统一接入多个大模型-适配器模式实战
前端·人工智能·适配器模式
jinyishu_13 天前
模拟实现 C++ 栈和队列——从适配器模式看懂 STL 容器之美
java·c++·适配器模式
wuqingshun31415916 天前
什么是代理模式?一般用在什么场景?
java·mysql·代理模式
我登哥MVP17 天前
走进 Gang of Four 设计模式:代理模式
设计模式·代理模式
折哥的程序人生 · 物流技术专研19 天前
Java 23 种设计模式:从踩坑到精通 | 番外:代理 vs 装饰器 —— Spring AOP 到底用了哪个?
java·代理模式·装饰器模式·java面试·java设计模式·springaop·从踩坑到精通
初学者,亦行者20 天前
算法设计与分析3:贪心法 - 求解最短路径问题(TSP)
算法·代理模式
似是燕归来22 天前
嵌入式工程师进阶指南:适配器编程设计模式一
c语言·stm32·适配器模式·嵌入式开发
2501_9160074723 天前
iPad 怎么抓包 从代理模式到暴力抓包的操作方法
android·ios·小程序·uni-app·代理模式·iphone·ipad