基于目标对象创建代理对象,并由代理对象控制目标对象的执行
基于OCP原则扩展目标对象的功能(装饰模式也可以做到)
代理模式场景
Mybatis(为接口创建代码,拦截器应用)
Spring(proxy,CGLib代理)
角色构成
Subject:抽象主题角色(可以省略,基于CGLIB创建代理对象)
Proxy:代理主题角色(代理对象)
RealSubject:真是的主题角色(目标对象角色)
强化分析
1.Mybatis中mapper接口的代理
2.JDK动态代理(Spring AOP思想)