动态代理在Java反序列化中的应用
动态代理简介
何为代理?在日常生活中我们或多或少都接触过房产中介、4S店以及各种各样的代理商,他们在经济社会运行当中扮演着代理的角色,负责对接厂商与客户。
用户如果想要投诉产品、寻求赔偿等,可以统一找到代理商,由代理商向厂商提出,这样便极大的节约了用户的各方面成本。
在编程中所谓的代理模式也是同样的道理,当我们想要对某一个类进行功能扩展而又不想直接修改当前类的代码的时候,我们可以创建一个代理类来对目标类进行包装。
通过在当前类的运行前、运行后、运行异常时添加新的代码从而实现目标类功能的增强与拓展。这便是代理模式的运行。如下图,A表示被代理类,B表示代理类,当A没有被代理时,外界的其他方法可以直接调用A的方法,
当A被代理后,C的方法如果要想调用A的方法就需要先通过B类再由B类调用A类的方法,那么我们便可以在B类中增加一些其他的功能。B类此时就类似一个收保护费的,要想从此过,留下买路钱,正所谓漫天要价,坐地还钱。
