代理设计模式1(知识点总结)

本文深入介绍了代理设计模式的概念及其在软件开发中的应用。探讨了静态代理与动态代理的区别,并详细解释了JDK动态代理和CGLIB的工作原理及其实现方式。通过具体的代理流程展示如何在不修改原有代码的情况下增加额外的功能。

1.代理设计模式

  • GoF95  一共定义了23种设计模式.代理设计模式是非常重要模式之一.
  • 作用:
    • 对目标对象访问进行控制.在访问目标前,后进行功能的扩展.
  • 可以进行功能扩展的技术:
    • 过滤器
    • 拦截器
    • 代理
  • 代理方式:
    • 静态代理:只能代理一种类型的对象.代理类需要自定义开发.
    • 动态代理:可以代理所有的类型对象.代理类由代理工具类动态生成.
      • JDK动态代理
        • 基于接口进行代理.
        • 目标对象必须实现相关的接口,才能使用这种代理方式.
        • 代理类和目标类实现了共同的接口.
        • InvocationHandler
      • Cglib/Javassist
        • 基于继承方式进行代理的.
        • 代理类是目标类的子类.
  • 代理流程:
    • 使用代理前代码结构:
      • A(客户端) -> D(目标程序(业务代码+非业务代码(日志,事务,权限,校验…)))     
    • 使用代理后代码结构:
      • A(客户端) ->B(代理对象) ->C(调用处理器(非业务代码(日志,事务,权限,校验…))-> D(目标程序(业务代码))
  • 代理可以解决系统中哪些问题?
    • 日志打印,事务处理,权限控制,数据校验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值