2021/9/5(代理模式)

2021/9/5 (代理模式)

安装了zsh的插件,高亮与命令补全。

Begin学习AOP,复习静态代理和动态代理:

动态代理:在程序的运行过程中,利用jdk的反射机制,创建代理类对象,并动态的指定要代理的目标类。

动态代理 底层就是反射 反射是一种解释性操作需要告诉虚拟机怎么怎么做 所以效率不算很高

Point

温习反射:利用反射创建对象的三种方式:

//1.源头:获取Class对象,用三种方式
Phone iPhone=new Phone();
//1.1.对象.getClass();获取对象
Class<?> clazz1 = iPhone.getClass();
//1.2.类.class
clazz1=Phone.class;
//1.3.Class.forName("包名.类名");
clazz1 = Class.forName("test.Phone");

//2.创建对象
//2.1通过newInstence()
Phone instance1 = (Phone) clazz1.newInstance();
//2.2先调用构造器,再通过newInstence()创建
Object instance2 = clazz1.getConstructor().newInstance();

条件:

jdk动态代理,必须有接口,目标类必须实现接口,没有接口,需要使用cglib动态代理。

动态代理要用到reflect 类中的InvocationHandler & method & Proxy 三大类

动态代理学习资料:

https://www.bilibili.com/video/BV1HZ4y1p7F1?p=17&spm_id_from=pageDriver

https://www.cnblogs.com/jia0504/p/13811424.html

原文地址:https://www.cnblogs.com/hujesse4/p/15231446.html