美文网首页
自学Java第123天

自学Java第123天

作者: 刘小爱 | 来源:发表于2020-08-30 12:00 被阅读0次

    AOP面向切面编程的学习

    以前也学过很多种面向XX编程
    比如面向过程编程,面向对象编程
    这两种也就是C语言和Java语言的区别

    后面Java又学了面向接口编程
    今天又学到了面向切面编程
    说来说去最终还是得面向搜索引擎编程:
    面向百度编程、面向谷歌编程

    面向开发文档编程
    面向老板的口述编程
    ……等等等等,各种各样的吐槽都有

    那这个面向切面编程到底是干嘛的呢?
    通俗简单小白式的理解就是:
    能够对某个对象的某个方法功能增强
    同时对这个方法本身没有任何修改

    大概举一个例子说明下:
    比如吃汉堡,里面有生菜、肉片…等等
    但是我发现这个生菜不好吃

    于是我把这个汉堡给切开
    将生菜取了出来,加了点老干妈
    再将生菜放回去,发现好吃了不少

    这个过程就是面向切面编程:
    汉堡就是一个目标对象
    生菜就是对象的方法中需要增强的方法
    给它增强了一个什么功能呢?
    给它加了点老干妈,更好吃了

    但是对生菜本身并没有产生修改
    这个要这么理解,不能太严谨
    什么叫对生菜本身产生修改?

    比如我把它拿出来用油炸了一下
    同时加了佐料,也更好吃了
    但是这样对生菜本身也产生修改了

    当然这个例子可能不太准确
    但大致就是这么个意思
    我学这块知识点的时候就是这么理解的
    不然太抽象了,比较难弄懂

    说白了就是对方法的增强
    继承也可以实现该功能
    但是继承会对方法本身产生修改

    而面向切面编程不仅增强了方法
    同时还没对方法本身产生修改
    那它是怎么实现的呢?就是利用动态代理

    ​对动态代理也进行了全方位的再次回顾
    当初学的时候觉得难的不行
    现在回头来看确实好理解了不少

    本质上就是Proxy类中的一个静态方法
    newProxyInstance(),其有三个参数
    将这些参数完全弄懂了,动态代理也就差不多了

    相关文章

      网友评论

          本文标题:自学Java第123天

          本文链接:https://www.haomeiwen.com/subject/hqvdsktx.html