代理类在程序运行前就已经存在,那么就是静态代理。
就是在代理类中使用一个委托类。
优点:
可以实现委托类和客户之间的解耦,在不修改委托类的情况下,在代理类进行一点小的修改就ok了。从例子也可以看出来,不修改生产工厂类,只需要在代理类里面进行一个判断,就可以实现了。
局限性:
所有的代理关系,必须在程序运行之前就已经编写好了。
运行时创建的代理方式,即是动态代理。
有点:
可以很方便的在对代理类的函数进行统一的处理,而不需要修改每个代理类的函数。
动态代理需要在委托类和代理类之间弄新的一个中间类,中间类必须实现一个“拦截”接口。
动态代理实质:形成两组静态代理关系 委托和中间 中间和代理
学习出处:http://developer.51cto.com/art/201606/512434.htm