代理模式分为静态代理模式和动态代理模式
静态代理:
代理类在程序运行前就已经定义好,与目标类的关系在程序运行前就完成了(类似企业的法律顾问)
动态代理:
代理类与目标对象的代理关系在程序运行时才确立(目标对象的代理对象由代理生成工具在程序运行时由jvm根据反射机制生成的 类似普通百姓遇到官司请律师)
动态代理有:proxy 和cglic
jdk的proxy 要求代理类和目标类必须实现同样的接口 如果没有接口则不可以用proxy
cglic 可以为没有接口的类创建动态代理 原理是生成子类 但如果是由final修饰的不能生成子类的类则不可用