zoukankan      html  css  js  c++  java
  • 内功心法-代理模式

    @

    内功心法-代理模式

    1. 掌握代理模式的应用场景
    2. 了解静态代理和动态代理的区别
    3. 了解CGLib和JDK Proxy的根本区别
    4. 手写实现定义的动态代理

    内容定位

    • 都知道SpringAOP时用代理模式实现,到底是怎么实现的呢?
    • 自己仿真手写还原部分细节

    代理模式的定义

    代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问。

    代理对象在客户端和目标对象之间起到中介作用。

    属于结构型设计模式

    生活中的代理模式

    • 房产中介
    • 快递小哥
    • 黄牛党

    代理模式的使用场景

    • 保护目标对象
    • 增强目标对象

    静态代理

    • 显示声明被代理对象

    eg数据源路由:动态切换数据源

    缺陷

    不符合开闭原则,只要被代理的那个类需要新的代理,都需要在代理类中新加方法

    动态代理($Proxy0)

    1. 拿到被代理类的引用,并且获取他所有的接口(反射获取)需要实现接口
    2. JDK Proxy类重新生成新的类,实现了被代理类所有接口的方法
    3. 动态生成Jav代码,把增强逻辑加入到新生成的代码中。
    4. 编译生成新的java代码的class文件
    5. 加载并重新运行新的class,得到的类就是全新的类

    Proxy是一个用来生成新的代理类的工具类

    为什么这个类的接口的长度不能大于65535?

  • 相关阅读:
    List sort()方法
    解析器
    beautifulsoup库
    break 语句
    enumerate函数
    POJ 1915 Knight Moves
    POJ 1745 Divisibility
    POJ 1731 Orders
    POJ 1664 放苹果
    POJ 1606 Jugs
  • 原文地址:https://www.cnblogs.com/mengjie1001/p/10926451.html
Copyright © 2011-2022 走看看