代理类核心总结
一、核心定义
代理类是代理模式的核心角色,本质是「中间人」,自身不实现核心业务逻辑,仅负责转发调用并增强功能。
二、核心前提(必记)
✅ 代理类必须持有真实类(RealSubject)的引用(无引用则无法转发调用,不构成代理)。
作用:通过该引用,调用真实类的核心方法,完成真正的业务逻辑。
三、核心功能(2个)
- 转发调用:外界仅与代理类交互,代理类内部调用真实类的对应方法(核心职责)。
- 功能增强:在调用真实类方法的「前后」,添加额外逻辑(无需修改真实类代码),比如:
- 前置:日志、权限判断、耗时统计
- 后置:结果处理、缓存、通知
四、核心结构(极简)
// 代理类模板
class 代理类 implements 抽象接口 {
// 持有真实类引用
private 真实类 真实对象 = new 真实类();
@Override
public void 核心方法() {
// 前置增强(可选)
额外逻辑1();
// 转发调用(核心)
真实对象.核心方法();
// 后置增强(可选)
额外逻辑2();
}
}
五、关键区分(避坑)
- 代理类 ≠ 真实类:不实现核心业务,仅转发+增强。
- 代理类 ≠ 回调:代理是「正向转发调用」,回调是「反向通知调用」。
- 持有引用 ≠ 回调:持有真实类引用是代理的前提,和回调无直接关系。
六、一句话终极总结
代理类 = 持有真实类引用 + 转发核心调用 + 增强额外逻辑(不改动真实类)。

1146

被折叠的 条评论
为什么被折叠?



