Spring——代理模式(待完)

代理模式是SpringAOP的底层

代理模式的分类:

  • 静态代理

  • 动态代理

10.1静态代理

角色:

  • 抽象业务:一般会使用接口或者抽象类来解决(房东出租房子这件事)

  • 真实角色:被代理的角色(房东)

  • 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作(中介)

  • 客户:访问代理对象的人(租客)

 

代理模式的好处:

  • 可以使真实角色的操作更加纯粹,不同去关注一些公共的业务

  • 公共业务就交给代理角色,实现了业务的分工

  • 公共业务发生扩展的时候,方便集中管理

缺点:

  • 一个真实角色就会产生一个代理角色,代码量会翻倍

 

10.2动态代理

  • 动态代理和静态代理角色一样

  • 动态代理的代理类是动态生成的,不是我们直接写的

  • 动态代理分为两大类:基于接口的动态代理、基于类的动态代理

    • 基于接口——JDK动态代理

    • 基于类:cglib

    • java字节码:javasist

需要了解两个类:Proxy:代理, InvocationHandler:调用处理程序

动态代理的好处:

  • 可以使真实角色的操作更加纯粹,不同去关注一些公共的业务

  • 公共业务就交给代理角色,实现了业务的分工

  • 公共业务发生扩展的时候,方便集中管理

  • 一个动态代理类代理的是一个接口,一般就是对应的一类业务

  • 一个动态代理类可以代理多个类,只要实现了同一个接口

posted @ 2020-09-02 19:37  Fabulo  阅读(96)  评论(0)    收藏  举报