1.什么是动态代理
动态代理中的代理类是由工具类或者工厂类动态生成的,不是由程序员手工定义的。代理关系是在程序运行过程中确立的。
2.使用动态代理模式需要注意的几点:
1)动态代理模式中不用定义代理类
2)目标对象是在客户类中创建的。因为工具或工厂在生成代理类时,需要目标对象。而工具或工厂类是由客户类调用的,由客户类调用工具或工厂类生成代理类,并创建代理对象。
3)由于目标对象在客户类中创建,所以这种代理模式,
无法实现保护和隐藏目标对象的目的。使用动态代理的目的是在不修改目标类的前提下,增强目标方法功能。
4)由于目标类是由工具类或工厂类动态生成的,其生成过程具有一般性。可以为任何目标类生成代理类及代理对象。不同的目标类其增强需求是不同的,是具有个性化的。这个个性化功能增强,
代理类委托给了另一个类E实现。这个类称为委托类。
5)使用静态代理与使用动态代理的目的是不同的:
1>使用静态代理的目的是:保护和隐藏目标对象
2>使用动态代理的目的是:在不修改目标类的前提下,增强目标对象。