类图
代码
IUserDao 相当于 Subject
1 | interface IUserDao { |
UserDaoImpl 相当于 RealSubject
1 | class UserDaoImpl implements IUserDao{ |
UserDaoProxy 相当于 Proxy
1 | class UserDaoProxy implements IUserDao{ |
JDK动态代理
1 | class ProxyFactory{ |
测试类
1 | public class Main { |
运行结果
1 | 开启事务 |
总结
概述
文中描述了2种代理方式的实现
- 标准代理模式的实现
- JDK动态代理实现(实现了接口的类生成代理)
GBLIB动态代理(文中没写,是面向实现类的代理)
优点
目标类可以更加关注业务本身