前几天在和一个朋友闲聊时,提到他去年面某团的时候,面试官问了他一个问题,什么是aop(他面的是测试岗,但是声明会一点java),然后就答不上来了,最后就呵呵呵了。
其实aop的概念也比较好理解。先看以下简化代码
public class Person {
String name;
public <T> T eat(Object o){
…………
}
}
Person是一个抽象对象,其中eat是一个动作。如果我能对eat这个动作进行监控,记录这个Person吃了什么,以及吃了之后有什么反应。那么这就是对这个动作的记录,也可以理解是对这个横向分析,类似于将一个物体进行切片分析(切面)。
在进行java开发的时候,如果采取这种方式,记录了一个接口的前后变化,那么我就可以很方便的进行日志记录与监控。这也是aop很多的一个应用方向。
上面只是一个简单的解说吧,我们来逐步了解一下AOP这个概念。
1、AOP概念介绍
待续。