动态代理

    xiaoxiao2021-03-25  112

    为什么需要代理:不用修改原有类代码 静态代理:生成一个方法,在方法中调用原有方法,并添加需要的新功能。如果原有类有10个方法,静态代理就会有10个方法。

    动态代理:生成一个新方法,在方法中使用反射调用需要调用的任意方法,添加需要的新功能。如果原有类有10个方法,动态代理也只会有一个方法,如拦截器,spring的aop。

    动态代理会生成一个临时的class文件,作为实现动态代理的类的二进制字节码,(可能在内存中,或其他地方用完被删除了)。

    Proxy类的代码量被固定下来,不会因为业务的逐渐庞大而庞大; 可以实现AOP编程,实际上静态代理也可以实现,总的来说,AOP可以算作是代理模式的一个典型应用; 解耦,通过参数就可以判断真实类,不需要事先实例化,更加灵活多变。

    转载请注明原文地址: https://ju.6miu.com/read-9223.html

    最新回复(0)