为了账号安全,请及时绑定邮箱和手机立即绑定

模式的秘密---代理模式

难度中级
时长 2小时 0分
学习人数
综合评分9.70
184人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.7 逻辑清晰
  • 具备哪些知识
    查看全部
  • 动态代理实现步骤
    查看全部
  • 哈哈哈
    查看全部
  • 远程代理(总店看各个连锁分店的情况,类似局域网),虚拟代理
    查看全部
  • 代理模式实际上是对接口方法不同实现方式的嵌套递归
    查看全部
    0 采集 收起 来源:课程总结

    2017-05-16

  • 静态代理的实现
    查看全部
  • 代理的分类
    查看全部
  • 代理模式-动态代理
    查看全部
    0 采集 收起 来源:课程总结

    2017-05-03

  • // 设计模式——代理模式 代理模式这种机制可以叫做AOP,在不改变原有代码的基础上,添加或者删除某些方法 例如: 要调用某个jar包中某个类的方法,但是不能改变源码,我们可以采用JDK的动态代理模式,在该方法的前后添加业务逻辑,如记录日志,权限控制等
    查看全部
    0 采集 收起 来源:课程总结

    2017-05-03

  • 常见的代理模式
    查看全部
    0 采集 收起 来源:课程总结

    2017-05-03

  • 上一讲到代理,内部的业务逻辑是硬编码的,如何实现真正的动态代理,动态的指定业务逻辑呢? 1.需要创建一个事务处理器,首先创建一个接口也就是InvocationHandler,为了模拟JDK,这里把接口的名字和JDK事务处理器名称一样,同样写一个方法叫做invoke(),用来表示对某个对象的某个方法进行业务处理,所以需要把某个对象以及对象的方法作为invoke()方法的参数传递进来,invoke(Object obj,Method method),方法作为参数使用到了java反射,需要把此包引入。这样InvocationHandler接口就完成了。 2.创建事务处理实现类比如说时间代理TimerProxy,实现了InvocationHandler接口,这样结构就成了 public class TimerProxy implements InvocationHandler{ @Override public void invoke(Object o, Method m) { //业务逻辑 method.invoke(目标对象,参数); //业务逻辑 } 需要将目标对象传入,没有参数可以不写参数,创建代理对象的构造方法,初始化目标对象 3.在Proxy类的newProxyInstance()方法中,除了要把目标Class接口作为参数外,还需要把事务处理器InvocationHandler 传进去,然后更改创建实例对象中硬编码的部分用事务处理器方法替代即可。难点在于字符串的拼接。
    查看全部
  • 完善动态代理实现 首先得到系统编译器,通过编译器得到文件管理者,以获取文件,然后编译器执行编译任务,完成编译之后,将class文件加载到类加载器中,通过构造方法得到实例,然后调用newInstance()接收一个对象的实例并返回。 (1)拿到编译器 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); (2)文件管理者 StandardJavaFileManager fileMgr = Compiler.getStandardFileManager(null,null,null); (3)获取文件 Iterable units = fileMgr.getJavaFileObjects(filename); (4)编译任务 CompilationTask t =compiler.getTask(null,fileMgr,null,null,null,units); (5)load到内存 ClassLoader cl = ClassLoader.getSystemClassLoader(); Class c = cl.loadClass(”com.imooc.proxy.$Proxy0”); (6)通过代理对象的构造器构造实例,并返回代理对象 Constructor ctr = c.getConstructor(infce); return ctr.newInstance(new Car());
    查看全部
  • 动态代理:解决代理类膨胀:爆炸
    查看全部
  • 代理模式与装饰器模式的区别: 区分模式,要首先知道什么叫模式。模式是在某种特定条件下,为了某个目的而提出的一种通用解决方案。这个定义就包括三个东西,限制条件、目的、还有具体实现。装饰器模式虽然与代理模式在实现上相似,但两者目的不一样,代理重在控制,并且对被代理对象在功能上的“增强”对于被代理对象那些“增强”的功能是“透明”的,被代理对象无须关注“增强”的功能具体干了什么。
    查看全部
  • 不推荐使用继承的方式
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java 开发课程的高级课程,希望各位小伙伴们在学习本课程之前,了解以下内容: 1)初步具备面向对象的设计思维 2)了解多态概念 3)了解反射
老师告诉你能学到什么?
1、代理模式概念机分类 2、代理模式应用场景 3、掌握静态代理、动态代理运用 4、理解JDK动态代理实现原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!