type
status
date
slug
summary
tags
category
icon
password
需求说明
- 有Vehicle(交通工具接口,有一个run方法),下面有两个实现类,Car和Ship
- 当运行Car对象的run方法和Ship对象的run方法
- 每次运行前和运行后都执行方法
代码
结果

image-20230213175841051
如果有很多这样的实现类,那么需要每次都要把前置方法和后置方法写一遍,既冗余又不好维护。
解决方案
使用动态代理的方式
生成代理对象,使用代理对象执行run方法,在代理对象执行方法前后输出统一的日志。
代码
测试
结果

image-20230214142122812
可以看到,运行类型也是代理对象。