代理模式核心作用:
通过代理,控制对象的访问;可以详细控制访问某个对象的方法,在调用方法前做前置处理,调用方法后做后置处理;
代理模式的应用:
- 远程代理,为一个对象在不同的地址空间提供局部代表;这样可以隐藏一个对象存在于不同地址空间的事实;
- 虚拟代理,根据需要创建开销很大的对象,通过虚拟代理来存放实例化需要很长时间的真实对象;如浏览器加载图片时通过虚拟代理来替代了真实的图片,此时代理存储了真实图片的路径和尺寸;
- 安全代理,用来控制真实对象访问的权限;
- 智能指引,当调用真实对象时,代理处理另外一些事;
核心角色:
- 抽象角色:定义代理/真实角色公共对外方法;
- 真实角色:关注真正的业务逻辑;
- 代理角色:将统一的流程控制放到代理角色中处理;
静态代理:
代码详见
com.transformer.proxy.staticproxy
https://git.lug.ustc.edu.cn/hellboy0621/transformer_gof23.git