Java设计模式之动态代理模式

形象描述

在将代理模式前,我们先来假设这样一个场景。

  • 你是一个程序员,客户带着需求去找你们公司,不会和你直接谈,而是通过商务,此时客户会任务商务就能代表你们公司。下面用一张图来说明。


  • 商务的作用有很多方面:
    1、项目启动前的商务谈判
    2、项目结束后的账款追讨
    3、有可能在软件开发前,谈判失败,商务来终止公司与客户的合作
    4、.....
  • 这些流程都不需要程序员去管,由商务控制了客户队程序员的访问

动态代理

  • 动态代理就是通过生成一个占位(代理对象),来代理真实的对象,从而控制真实对象的访问,在上述例子中,商务就是一个代理对象。
  • 代理的作用就是,在真实对象访问之前或者之后加入相应的逻辑,或根据其他规则控制是否使用真实对象。

实现步骤

  1. 代理对象和真实对象之间建立代理关系。
  2. 实现代理对象的代理逻辑方法。
Java中有多种动态代理技术,如JDK、CGLIB、Javassist、ASM等,其中最常用的就是JDK动态代理CGLIB动态代理。但无论是哪种,他们的理念都是相似的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问。 我们首先来谈谈什么是代理...
    Haozz_1994阅读 313评论 0 2
  • 参考资料:菜鸟教程之设计模式 设计模式概述 设计模式(Design pattern)代表了最佳的实践,通常被有经验...
    Steven1997阅读 1,199评论 1 12
  • 一、概述   代理模式我们接触的就比较多了,所谓的代理模式就是,给某一个对象提供一个代理对象,并由代理对象控制对原...
    骑着乌龟去看海阅读 931评论 0 9
  • 旅程波折,空气带点腥味,我忘了说话。 朱唇微启,张口忘了说话,坐着坐着,会不会落地生根,赖着赖着,会不会时光倒淌,...
    池池雾阅读 293评论 0 0
  • Day 0 在报名了好几次之后,又一次不抱希望地查询,却惊喜的发现这一次居然成功入选。
    晗冉冉阅读 1,462评论 0 0