为其它对象提供一个代理对象,并由代理对象控制这个对象的访问。
一 作用:
1.隔离 控制访问权限 2 附加操作 3.延迟加载 4
spring的aop就是代理模式来实现的,实现解耦、动态扩展、代码复用。
spring源码中也多次使用到代理模式,比如 spring mvc中的流程中就是通过代理类来间接执行业务逻辑。
二 遵循的设计原则:
单一职责原则:如果直接在 业务类加 附加操作,那么 违背该原则。
面向接口编程
开闭原则 :如果直接修改之前的业务类,违背改原则。
三 实现方式
1.静态代理
2,通过jdk 或 cglib实现动态代理 (ASM字节码生成技术)。