动态代理

Rover20230226 / 2023-05-13 / 原文

一、概念

  什么是代理:如同中介,当一个类不能或不适合直接访问另一个对象时,适合使用。

  作用:动态代理可以在不更改原类代码的前提下,增强所有类的功能。

二、解释

(1)角色

明星:唱歌、跳舞

经纪人:代理明星,表示明星能干什么,来跟老板合作

老板:找明星谈合作

 

(2)静态代理(三个对象)

  明星

    ↓

  合同:唱歌、跳舞

    ↑

  经纪人 —— 经纪人不是真正实现合同接口,定义了两个行为的方法,告诉老板明星能干什么

  老板

 

(3)动态代理

定义内容(3个)

  明星

    ↓

  合同(接口):唱歌、跳舞

 

  老板

让虚拟机来创建一个经纪人(需要告诉虚拟机经纪人能干什么 —— 告诉老板明星能干什么)