944 B
944 B
Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)
- Subject 抽象主题角色
- RealSubject 具体主题角色 (委托角色, 被代理角色),业务的具体执行者
- Proxy 代理主题角色(委托类、代理类),负责对真实角色的应用
优点
- 指责清晰
- 高扩展性
- 智能化
扩张
普通代理
客户端只能访问代理角色,不能访问真实角色
强制代理
必须通过真实角色找到代理角色,否则不能访问
动态代理
在实现阶段不用关心代理谁,而在运行阶段才指定代理哪一个对象, AOP 核心就是动态代理机制
要实现动态代理的首要条件是:被代理类必须实现一个接口,回想一下前面的分析吧。当然了,现在也有很多技术如 CGLIB 可以实现不需要接口也可以实现动态代理的方式