从OOP(面向对象)的学习来看AOP(面向切面)的学习

首先还是要讲一下AOP是什么,对于一些初学者我觉得对这个概念还是有些生疏的,而且AOP的概念也是相对抽象的,就如同我们当时学习OOP时的抽象一样不容易接受,所以我们对于这部分的提前概念还是要有的。

OOP是什么

Object Oriented Program-面向对象编程

这是我们所熟悉的面向对象编程,我们一直都在用的也是,当然这是我们最熟悉的编程方式,但是同时,我们也最不熟悉面向对象的编程

思考一下,我们写过的代码,用没用到面向对象,真的用到了封装、继承、多态了吗???

想想你的代码里面有没有经常使用的部分,工具类有没有进行封装,共性的内容有没有抽离出来,有没有针对于不同的输入可以得到不同的输出,是不是真的将面向对象的三大特征运用到代码里面,将面向对象的编程贯彻到我们的日常coding中

究竟是想起来就面向对象,还是把它贯彻落实到我们的思维中,可以做到信手捻来才是最重要的

万物皆对象

AOP是什么

Aspect Oriented Program-面向切面编程

我们熟悉了面向对象编程之后,对于面向对象的学习逐渐到了一定的程度,我们逐渐的发现别样的编程方式–面向切面编程,其实这和面向对象一样,同样也是思想,同样需要抽象,同样容易理解去学习

面向切面,我形象的比喻一下,我们需要运行程序,或者要进行函数的调用,其实是需要走很长一条线才会完成的,我们在这长长的一条线中的某个点进行操作,其实我觉得面向切面编程完全可以说为面向点编程,只不过是这个点多了,就变成了面了,所以我们就叫它面向切面编程。

简单的理解,我们在一条线上针对一个点操作,所有的线都是针对这个点来操作的,把这些点合并起来,我们就形成了切面:
在这里插入图片描述
面向切面很简单,就像水坝,长得很像,而且它的修建也不是无缘无故的,会找到比如说上下落差大的地方来修建。

简单来说面向切面,就像是我们配置了一个流程中的一部分内容,规定了在这个流程中的某个地方要做什么,那么问题就来了,某个地方是如何找到的

其实我们不妨想想我们日常中怎么说,我们打辆车,我们会跟司机打电话说我们在哪在哪,让他来接,常会说的是我们在xx大厦前面、xx超市旁边这类的话,代码里面也是,我们也会找到一个可以当作标志的地方,根据这个标志来说我们在这个标志前或者后

当然,我们可以任意规定,我们的切面在何处

为什么要AOP

我也查过很多博客,也没有哪篇博客很明确的写了我们要为什么要用AOP这个问题

回到老话题,当然其实这应该是第一个说的,我们为什么要用AOP

AOP是一种思想,就和OOP一样

如果我问为什么要OOP,那你肯定会反问我,为什么不OOP

所以AOP也是一样的,为什么不用AOP

如果非要说我们为什么用了OOP,那么,其实也就是使用了OOP之后,我们的代码达到了复用、会更加的灵活方便

那么为什么用AOP,其实就是程序的拓展性得到了增强

要在哪使用AOP

比如说:

方法调用、打印日志、登录鉴权、过滤器和拦截器的使用等等

其实装饰器模式使用了AOP的思想也可以深入的研究一下

总结一下

没有什么是新的,也没有什么是好的,任何东西都是相互的

不只是面向对象和面向切面,还有面向过程与面向接口,这些思想都是我们需要去思考的

搜索AOP的资料,深入去理解与学习是很简单的,但是我们需要的是我们的学习得体系,多问几个为什么

发布了129 篇原创文章 · 获赞 147 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq1515312832/article/details/103385704