自学Java第123天AOP面向切面编程的学习-以前也学过很多种面向XX编程比如面向过程编程,面向对象编程这两种也就是C语言和Java语言的区别-后面Java又学了面向接口编程今天又学到了面向切面编程说来说去最终还是得面向搜索引擎编程:面向百度编程、面向谷歌编程-面向开发文档编程面向老板的口述编程……等等等等,各种各样的吐槽都有-那这个面向切面编程到底是干嘛的呢?通俗简单小白式的理解就是:能够对某个对象的某个方法功能增强同时对这个方法本身没有任何修改-大概举一个例子说明下:比如吃汉堡,里面有生菜、肉片…等等但是我发现这个生菜不好吃-于是我把这个汉堡给切开将生菜取了出来,加了点老干妈再将生菜放回去,发现好吃了不少-这个过程就是面向切面编程:汉堡就是一个目标对象生菜就是对象的方法中需要增强的方法给它增强了一个什么功能呢?给它加了点老干妈,更好吃了-但是对生菜本身并没有产生修改这个要这么理解,不能太严谨什么叫对生菜本身产生修改?-比如我把它拿出来用油炸了一下同时加了佐料,也更好吃了但是这样对生菜本身也产生修改了-当然这个例子可能不太准确但大致就是这么个意思我学这块知识点的时候就是这么理解的不然太抽象了,比较难弄懂-说白了就是对方法的增强继承也可以实现该功能但是继承会对方法本身产生修改-而面向切面编程不仅增强了方法同时还没对方法本身产生修改那它是怎么实现的呢?就是利用动态代理-对动态代理也进行了全方位的再次回顾当初学的时候觉得难的不行现在回头来看确实好理解了不少-本质上就是Proxy类中的一个静态方法newProxyInstance(),其有三个参数将这些参数完全弄懂了,动态代理也就差不多了