zoukankan      html  css  js  c++  java
  • 反射与动态代理

    问题总结:
    1.考察你对反射机制的了解和掌握程度。


    2.动态代理解决了什么问题,在你业务系统中的应用场景是什么?
      代理可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成。
      通过代理可以让调用者与实现者之间解耦。比如进行 RPC 调用,框架内部的寻址、序列化、反序列化
      过代理静默地解决一些业务无关的问题,比如远程、安全、事务、日志、资源关闭……让应用开发者可以只关心他的业务

    3.JDK 动态代理在设计和实现上与 cglib 等方式有什么不同,进而如何取舍?


    4.反射各种典型用例的编程

    5.动态代理模式选型

      JDK Proxy 的优势:最小化依赖关系,减少依赖意味着简化开发和维护,JDK 本身的支持,可能比 cglib 更加可靠。平滑进行 JDK 版本升级,
            而字节码类库通常需要进行更新以保证在新版 Java 上能够使用。
            代码实现简单。

      基于类似 cglib 框架的优势:有的时候调用目标可能不便实现额外接口,从某种角度看,限定调用者实现接口是有些侵入性的实践,
      类似 cglib 动态代理就没有这种限制。只操作我们关心的类,而不必为其他相关类增加工作量。高性能。

    我们在选型中,性能未必是唯一考量,可靠性、可维护性、编程工作量等往往是更主要的考虑因素,毕竟标准类库和反射编程的门槛要低得多,代码量也是更加可控的,

    如果我们比较下不同开源项目在动态代理开发上的投入,也能看到这一点。

    纸上学来终觉浅,觉知此事需躬行
  • 相关阅读:
    azure备份虚拟机
    本地git部署web连接azure的git存储库
    dnsmasq服务的安装与配置
    hadoop错误- slave节点无法启动data node数据节点进程,但是master节点datanode正常启动
    hadoop错误--转发-hadoop启动遇到的各种问题
    hadoop错误--集群启动master时namenode进程无法启动
    c++的字节对齐
    fstream 和 iostream
    C语言的声明的优先级规则
    齐次矩阵
  • 原文地址:https://www.cnblogs.com/dreamHighMjc/p/15078664.html
Copyright © 2011-2022 走看看