代理Proxy

代理Proxy

  • 静态代理
  • 动态代理
  • Spring AOP
    在这里插入图片描述

问题:我想它录坦克的移动时间
最简单的办法:修设代码,它录时间

问题2:如果无法改变方法源码呢?
用继承?(慎用继承,耦合度太高)
用代理(聚合)

代理有各种类型
问题: 如何实理代理的各种组合?继承?Decorator?

在move方法外面包一层记录日志,在日志方法外面包一层记录时间
矛盾:日志只能代理Tank,不能代理时间
代理的对象改成Movable型越来越像decorator

在这里插入图片描述

v08:如果有stop方法需要代理…
如果想LogProxy可以重用,不仅可以代理Tank,还可以代理任何其他可以代理的类型Object
(毕竟日志记录,时间计算是很多方法都需要的东西),这时该怎么做?
分离代理行为(记录日志,时间,权限,事务)与被代理对象(现在只能代理movable)
使用jdk的动态代型

生成一个动态代理–>一个类
调用move方法,一定会调用InvocationHandler的invoke方法
JDK动态代理执行过程
IOC + AOP
bean工厂 +灵活装配+动态行为拼接,成就spring在java框架中的一哥地位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值