Spring - (4) AOP前奏:代理模式

一.情景再现

数学计算器 :

①执行加减乘除运算
②日志:在程序执行期间追踪正在发生的活动
③验证:希望计算器只能处理正数的运算

问题:

①代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀。每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点。
②代码分散: 以日志需求为例,只是为了满足这个单一需求,就不得不在多个模块(方法)里多次重复相同的日志代码。如果日志需求发生变化,必须修改所有模块。

为什么需要代理模式:

  • 1.当要求不能直接调用目标类方法时,选择调用另一个类方法,该类方法继承目标类方法,并且其内部封装了目标类方法起到一个中介隔离的作用,分隔代码功能,更便于管理
  • 2.开闭原则,代理还可以起到扩展目标类的作用,虽然真正的业务逻辑还是封装在目标类中,但是可以在代理类中实现缓存、日志、消息过滤等功能

二.静态代理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.动态代理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值