1.如何理解代理模式
- 基于目标对象(Target)创建代理对象(Proxy),并由代理对象控制目标对象的执行
- 基于OCP原则扩展目标对象的功能(装饰模式也可以实现,但是装饰模式不可以控制目标对象)
2.代理模式场景分析
- mybatis(为接口创建代理对象,拦截器应用)
- spring(AOP,JDK动态代理,CGLIB代理)
3.代理模式角色构成
- Subject:抽象主题角色(可以省略,基于CGLIB创建代理对象)
- Proxy:代理主题角色(代理对象)
- RealSubject:真实主题角色(目标对象角色)
4.代理模式应用分析
- 优势:基于OCP进行目标对象控制,扩展目标对象功能
- 劣势:由于代理对象的创建可能会导致性能上的缺陷