AOP概念及作用详细解释

2年前 (2022) 程序员胖胖胖虎阿
126 0 0

今天学习spring的时候接触到一个新的知识以及概念AOP,老师当时讲这个知识点的时候,并没有讲太多关于这方面的知识,我们所学习到的知识侧重于应用,所以对这一块的理论知识是有一点缺少,以至于小编在学习完AOP之后,也不太清楚这是一个什么东西,到底有什么作用?因此小编自己在课余时间对这方面知识进行了一个补充学习,并且将自己的课后积累进行一个分享,希望能够帮助到和我一样迷惑到学习者!小编的每一遍文章自己都有很用心的在编写,希望自己的这份用心能够在帮助大家的同时得到大家的支持和鼓励,如果各位客官觉得小编的文章对各位到学习和理解有帮助的话,麻烦大家给我点一个赞哦(虽然小编自己也不知道这个怎么点赞!哈哈)!

首先,什么是AOP呢?

AOP(Aspect Oriented Programming):面向切面编程,一种编程范式,隶属于软件工程范畴,指导开发者如何组织程序结构,AOP弥补了OOP的不足,基于OOP基础之上进行横向开发。

OOP规定程序开发以类为主体模型,一切围绕对象进行,完成某个任务先构建模型;AOP程序开发主要关注基于OOP开发中的共性功能,一切围绕共性功能进行,完成某个任务先构建可能遇到的所有共性功能(当所有功能都开发出来也就没有共性与非共性之分)

这是AOP的概念,看到这里我相信大家肯定都明白AOP是什么了!心里暗自嘀咕:懂个寂寞!!这已经是小编整理过的介绍了,比度娘出来的东西已经少了很多内容了,但是有一说一,我自己在编写这篇文章以及上面的文字的时候,自己的脑袋里面也是模模糊糊,不明所以!但是我已经找到容易理解的方式了!!上代码!

AOP的优势:

                                                提高代码的可重用性

                                                业务代码编码更简洁

                                                业务代码维护更高效

                                                业务功能拓展更便捷

关于AOP的优势大家在看了下面的讲解之后,应该可以对这些优势进行一个进一步的理解!

AOP概念及作用详细解释

这是两段学习JDBC连接Mysql数据库时进行查找和更新的代码,从这段代码中就可以看出其中重复使用的代码量还是挺多的,这对于我们程序开发者来说,就好比在做无用功,为什么同样的代码需要重复编写多次呢!这与我们技术开发者能躺着就不坐着的努力宗旨不相符合!怎么办呢?其实重复的这一部分代码可以进行抽取,简化了我们的开发 ,抽取之后是不是感觉代码量已经少了很多了呢?AOP概念及作用详细解释

 但是这样的抽取,只靠其中的没有抽取的代码肯定是不可以运行程序的,运行的时候需要将其中抽取出来的共性功能代码放回去,形成一个完整的代码,从而使程序正常运行,这样的一种开发模式被称为AOP,小编这样的解释,大家可还满意?

接下来给大家分享一下关于AOP开发当中存在的几个相关理论概念希望可以帮助大家理解,下面是小编的两张图片资料,生动形象!

 AOP概念及作用详细解释

AOP概念及作用详细解释

其中涉及到的概念有以下几个:

Joinpoint(连接点):我们平常所写的普通方法在AOP中就是连接点

Pointcut(切入点):挖掉共性功能剩余下来的方法,也就是小编上面的图片代码中所抽取之后剩余的不完整的那部分代码

Advice(通知):抽取出来的共性功能就是通知,最终回以一个方法的形式呈现

Aspect(切面):共性功能与切入点之间的存在的位置对应关系,比如:挖的这串代码在切入点代码的前面还是后面

Target(目标对象):挖掉功能的方法对应的类所产生的对象,这种对象是无法直接完成最终工作的,当然其实也是很好理解的啦!毕竟只有一部分代码。

Weaving(织入):是一个将挖掉的功能进行回填的一个动态过程。

Proxy(代理):目标对象是无法直接完成工作的,需要对其进行功能回填,通过创建的代理对象实现。

Introduction(引入/引介):就是对原始对象无中生有的添加成员变量或成员方法

接下来说说AOP的作用吧!

伴随着AOP时代的降临,可以从各个行业的标准化、规范化开始入手,一步一步将所有共性功能逐一开发完毕,最终以功能组合来完成个别业务模块乃至整体业务系统的开发。

目标:将软件开发由手工制作走向半自动化/全自动化阶段,实现“插拔式组件体系结构”搭建

今天又完成了一篇自己的学习心得,虽然自己现在连个萌新都算不上,但是自己还是希望自己能够凭借自己的微不足道的学习心得在java学习中发光发热!请大家多多支持!

版权声明:程序员胖胖胖虎阿 发表于 2022年10月19日 下午7:16。
转载请注明:AOP概念及作用详细解释 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...