1 Star 0 Fork 0

juniperwu/JavaPattern

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ProxyTest.java 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
juniperwu 提交于 2019-06-08 01:38 +08:00 . 增加动态代理模式
package com.pattern.dynamicProxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
// 动态代理
//
// 代理类在程序运行时创建的代理方式被成为动态代理。
// 代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。
// 相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类中的方法。
// 比如说,想要在每个代理的方法前都加上一个处理方法:
public class ProxyTest {
public static void main(String[] args) {
//创建一个实例对象,这个对象是被代理的对象
Person zhangsan = new Student("张三");
//创建一个与代理对象相关联的InvocationHandler
InvocationHandler stuHandler = new StuInvocationHandler<Person>(zhangsan);
//创建一个代理对象stuProxy来代理zhangsan,代理对象的每个执行方法都会替换执行Invocation中的invoke方法
Person stuProxy = (Person) Proxy.newProxyInstance(Person.class.getClassLoader(), new Class<?>[]{Person.class}, stuHandler);
//代理执行上交班费的方法
stuProxy.giveMoney(50);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/mygit2008/JavaPattern.git
git@gitee.com:mygit2008/JavaPattern.git
mygit2008
JavaPattern
JavaPattern
master

搜索帮助