代理
增强对象的功能
设计模式:一些通用的解决固定问题的方式
-
装饰模式
-
代理模式
-
概念
- 真实对象:被代理的对象
- 代理对象
- 代理模式:代理对象代理真实对象,达到增强真实对象功能过的目的
-
实现方式
- 静态代理:类文件描述代理模式
- 动态代理在内存中形成代理类
- 代理对象和真实对象实现相同的接口
- Proxy.nowInstance();获取代理对象
- 使用代理对象调用方法
- 增强方法
- 增强参数列表
- 增强返回值类型
- 增强方法体执行逻辑
-
示例
-
HuaWei huaWei = new HuaWei(); Phone phone = (Phone) Proxy.newProxyInstance(huaWei.getClass().getClassLoader(), huaWei.getClass().getInterfaces(), (proxy, method, args1) -> { System.out.println("phone proxy"); System.out.println(method.getName()); Object invoke = method.invoke(huaWei,args1[0]); return invoke; }); int i = phone.create(1000); System.out.println(i);
-
-