系列三十一、代理(一)

一、概述

1.1、为什么要有代理

  • 生活中有很多例子,比如委托业务、黄牛(票贩子)等等;
  • 代理就是被代理者没有能力或者不愿意去做某件事情,需要找个人替自己完成这件事,这就是代理存在的原因;
  • 例如要租房子,房产中介可以在我们入住进来之前代理我们找房子,打扫卫生,拿钥匙等,中介就是代理,而自己就是被代理了;

1.2、作用

"代理对象"对"被代理对象"的某个方法执行之前或者执行之后加入其他增强逻辑。

前增强:例如获取当前时间

被代理对象调用方法

后增强:例如获取当前时间

计算方法执行耗时

1.3、代理的前提条件

抽象角色:声明功能

被代理角色:实现抽象功能

代理角色:实现抽象功能,完成代理逻辑

意味着被代理角色和代理角色有着共同的父类(即抽象角色),例如我要买一套房子,我只能找房产中介,不能找票贩子。

1.4、代理模型 

系列三十一、代理(一)_第1张图片 

(1)代理角色和被代理角色,需要共同的抽象父类;

(2)把共同的业务抽象成抽象方法,代理角色和被代理角色都实现该方法,让他们具有共同的业务逻辑

1.5、分类

静态代理、动态代理。 

你可能感兴趣的:(Spring全家桶面试系列,代理模式)