1.前言 最近舍友去面试遇到了关于java代理模式的问题. 我虽然知道怎么使用,但是没有做过正经的总结,因此有了这篇随笔,好好总结一下三大代理模式底层原理. 事实上,在开发项目的时候,基本用不上代理,一般使用代理都是修改以前的代码才用到了,没人闲着在业务层多套一层代理吧??? 为什么使用代理? 原因是不希望影响原有的业务代码的同时,添加自定义的操作,如写日志.权限拦截.发短信.发邮件等,这样的操作叫做增强操作, 但是这一般是aop[面向切面编程]做的,虽然aop底层就是使用代理做的,但是用aop…