Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/代理模式.md
2023-09-10 10:50:53 +08:00

944 B

Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)

  • Subject 抽象主题角色
  • RealSubject 具体主题角色 (委托角色, 被代理角色),业务的具体执行者
  • Proxy 代理主题角色(委托类、代理类),负责对真实角色的应用

优点

  • 指责清晰
  • 高扩展性
  • 智能化

扩张

普通代理

客户端只能访问代理角色,不能访问真实角色

强制代理

必须通过真实角色找到代理角色,否则不能访问

动态代理

在实现阶段不用关心代理谁,而在运行阶段才指定代理哪一个对象, AOP 核心就是动态代理机制

要实现动态代理的首要条件是:被代理类必须实现一个接口,回想一下前面的分析吧。当然了,现在也有很多技术如 CGLIB 可以实现不需要接口也可以实现动态代理的方式