【代理模式】

**定义:**代理模式是一种结构型设计模式,它允许我们创建一个代理对象,用于控制对另一个对象的访问。

代理对象充当了被代理对象(目标对象)的代表,与被代理对象实现相同的接口,从而实现对被代理对象的间接访问,对被代理对象的访问进行控制和增强。

**类型:**静态代理和动态代理。

静态代理: 是在编译时期就已经确定代理关系的代理方式。在静态代理中,需要手动创建代理类,并在代理类中编写对被代理对象的调用逻辑。静态代理的优点是简单易懂,但缺点是对每个被代理类都需要创建相应的代理类,代码量会较大。

动态代理: 是在运行时动态地创建代理对象的代理方式。在动态代理中,不需要手动创建代理类,而是通过使用Java反射机制来动态生成代理类。常见的动态代理技术有JDK动态代理和CGLIB动态代理。动态代理的优点是可以减少代理类的数量,并且可以更灵活地应对不同类型的被代理对象,但也存在一定的性能损耗。

JDK 动态代理要求目标对象实现一个或多个接口,它通过动态生成一个实现了目标对象接口的代理类,在代理类中完成横切逻辑的织入。JDK 动态代理是基于接口来实现的,++因此只能代理实现了接口的类。++

CGLIB 动态代理则不要求目标对象实现接口,它通过生成目标对象的子类,并在子类中完成横切逻辑的织入。CGLIB 动态代理是基于继承来实现的,++因此可以代理没有实现接口的类。++

相关推荐
panzer_maus1 天前
工厂模式、代理模式与单例模式的介绍
java·设计模式·代理模式
花月C2 天前
线性动态规划(Linear DP)
算法·动态规划·代理模式
散峰而望2 天前
【基础算法】动态规划从入门到进阶:记忆化搜索、线性 DP、LIS/LCS 一网打尽
c++·后端·算法·github·深度优先·动态规划·代理模式
淡忘旧梦2 天前
ChatGPT回答白屏
人工智能·chatgpt·代理模式
会编程的土豆2 天前
【数据结构与算法】动态规划
数据结构·c++·算法·leetcode·代理模式
范纹杉想快点毕业4 天前
C语言编程实战宝典:550例精解·涵盖基础语法·数组指针·位运算·递归·贪心·动态规划
c语言·动态规划·代理模式
想不明白的过度思考者4 天前
SpringAOP:Java 三大代理模式:从静态代理到 JDK & CGLIB 动态代理
java·开发语言·代理模式
※DX3906※6 天前
SpringBoot之旅5| 快速上手SpringAOP、深入刨析动态/静态两种代理模式
java·数据库·spring boot·后端·spring·java-ee·代理模式
无籽西瓜a6 天前
【西瓜带你学设计模式 | 第九期 - 代理模式】代理模式 —— 静态与动态代理实现、优缺点与适用场景
java·后端·设计模式·软件工程·代理模式
江畔何人初8 天前
iptables 和 IPVS 代理模式 Service 的区别
linux·运维·服务器·网络·云原生·kubernetes·代理模式