8. 一分钟读懂“代理模式”

8.1 模式介绍

代理模式是一种结构型设计模式,它通过提供一个代理对象替代 对另一个对象(真实对象 )的访问。代理对象与真实对象实现相同的接口,并通过代理类对真实对象的访问进行控制,可以在调用前后执行附加操作,如权限检查、日志记录、延迟加载等。

代理模式的核心思想是:客户端通过代理对象与真实对象交互,代理对象负责在不改变真实对象的前提下,为其提供额外的功能

8.2 实现要素

单例模式实现3要素包括:代理类 (实现了抽象主题接口,持有真实类的引用)、真实类 (实现了抽象主题接口,执行实际的业务逻辑)、抽象主题接口(代理类和被代理类共同的接口)。

8.3 场景案例

代理模式就像酒店前台接待,它负责客户的初步接待并对入住信息进行一些附加检查,再将实际的入住操作交给酒店服务系统(真实类)完成。

  • 代理类FrontProxy类表示前台接待,接收并转发客户和酒店服务系统之间请求交互,同时提供验证客户身份、检查房间等额外服务。

  • 真实类HotelSystem类表示酒店服务管理系统,真正完成房间分配、入住和退房等核心操作。

  • 抽象主题接口IHotelSystem接口定义了房间分配、入住和退房等核心操作的抽象方法。

  • 附加功能:checkIn()方法表示入住检查,checkOut()方法表示退房检查,这些都是酒店前台接待提供的额外服务。

客户端调用代理类(FrontProxy)与真实类(HotelSystem)交互,同时代理类提供了额外的checkIn()入住检查、checkOut()退房检查服务供客户端使用。

相关推荐
lzz的编码时刻2 天前
深入理解代理模式(Proxy):静态代理、动态代理与AOP
java·设计模式·代理模式
huaqianzkh2 天前
代理模式的理解和实践
java·设计模式·代理模式
青岛少儿编程-王老师2 天前
CCF编程能力等级认证GESP—C++8级—20241207
开发语言·数据结构·c++·算法·青少年编程·代理模式
博风3 天前
设计模式:22、代理模式
设计模式·代理模式
xiaoduyyy3 天前
【Android】结构型设计模式—代理模式、装饰模式、外观模式、享元模式
android·设计模式·代理模式
OkeyProxy3 天前
ISP的類型有哪些?
代理模式·proxy模式·isp·代理服务器·海外代理ip
去看全世界的云4 天前
【设计模式】结构型设计模式总结之代理模式、装饰模式、外观模式、享元模式
android·java·设计模式·代理模式·享元模式·外观模式
get_money_5 天前
代码随想录Day34 本周小结动态规划,62.不同路径,63. 不同路径 II,343. 整数拆分,96.不同的二叉搜索树。
java·开发语言·算法·贪心算法·动态规划·代理模式
m0_727895045 天前
day 35 第九章 动态规划part03
代理模式