了解AOP(面向切面编程)与OOP(面向对象编程)

                 AOP,他是一种思想,是OOP的延展。

1,
说OOP就来说下之前的OPP,最早开始的程序,一个函数(方法)或者说是功能做一个事情,这种思想划分的是一个功能一个功能的来组合解决问题。
后来人们发现,功能解决问题是解决了,但是功能太多了,人脑实在是有限,太劳财伤命了,而且跟人们看世界的方法有点差异,人们都习惯把某一类的习性划分一起,作为一个整体研究,而不是把某一个习性放一起,很多个种类的东西都拥有这个习性。
2,
所以就搞了一种OOP来解决问题,这个的好处就是在于把某一类或者说某一种特性的功能组合在一起,赋给抽象的对象,这样跟你我他这种人们的世界观很接近,而且不用研究你啊我啊能干什么,只要知道大家都是人类,人类会有一些通用的什么方法类之类的,而你我具体有些什么嗜好差异,就不管了,这样一来,就能把人力集合起来,各司其职了。脉络就清晰了。

3,
再就是AOP,其实这几个都是人类生产力方式的转变有关,有一定的相通处。这个就更加细化了,他把抽象中的某些方面做了合集,就好比大公司,如果一个经理管理具体细致到人,而且管吃喝住行之类的啥都插一脚,他也很累,而且管得也不够多,但是如果他只管某一个方面的东西,比如大家吃,那样就可以多管很多人,他也能轻松很多,这样就可以找不同的经理来管不同方面,效率又会更加高,所以AOP就出来了,之前的OOP,很多种类,很多抽象的东西,你要调用某个类别的方法,至少要知道他是谁,能干嘛直接去调用,而此时你根本不想知道这些,(比如你要找个洗碗的,你肯定不想了解他能不能吃饭,个子高不高之类的,你只要他能给你干好活就可以了)因为你只关心你要的方法,其余的都是多余的。所以AOP的话,有一个专门的管理者帮你管理你要的方法,一种方面的东西,比如add什么,这样是不更省心省力

总结:

所以说, OPP,OOP,AOP,区别就是"字母不同"!是什么意思,就是什么区别。

概念:
①:
OOP是面向对象编程,核心思想是将客观存在的不同事物抽象成相互独立的类,然后把与事物相关的属性和行为封装到类里,并通过继承和多态来定义类彼此间的关系,最后通过操作类的实例来完成实际业务逻辑的功能需求。

②:
AOP是面向切面编程,核心思想是将业务逻辑中与类不相关的通用功能切面式的提取分离出来,让多个类共享一个行为,一旦这个行为发生改变,不必修改类,而只需要修改这个行为即可。

OOP与AOP的区别:
1、面向目标不同:简单来说OOP是面向名词领域,AOP面向动词领域。

2、思想结构不同:OOP是纵向结构,AOP是横向结构。

3、注重方面不同:OOP注重业务逻辑单元的划分,AOP偏重业务处理过程的某个步骤或阶段。

OOP与AOP联系:
两者之间是一个相互补充和完善的关系。

AOP的优点:

利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

AOP的主要应用:

日志记录、事务处理、异常处理、安全控制和性能统计方面。

在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务和事务进行内聚性的开发。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章