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

形象描述

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

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


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

动态代理

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

实现步骤

  1. 代理对象和真实对象之间建立代理关系。
  2. 实现代理对象的代理逻辑方法。
Java中有多种动态代理技术,如JDK、CGLIB、Javassist、ASM等,其中最常用的就是JDK动态代理和CGLIB动态代理。但无论是哪种,他们的理念都是相似的。

你可能感兴趣的:(Java设计模式之动态代理模式)