如何理解POP,OOP,AOP之间的关系
POP面向过程(Process-oriented programming)
面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,数据仅仅作为输入和输出存在。
举例:比如我们去教室上课,我们开始上课是一个事件,下课走人又是一个事件,在编程序的时候我们关心的是某一个事件,而不是上课本身,对于面向过程这一种思想来编写上课程序只要分别对上课下课写程序就好,不用关心怎么上课等内容。
OOP面向对象(Object Oriented Programming)
OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
他让我们在分析和解决问题时把思维和重点转向现实中的客体中来,把构成事物分解成各个对象,建立对象是为了描述某个事物在整个解决问题的步骤中的行为,然后通过UML工具理清这些客体之间的联系,最后用面向对象的语言实现这种客体以及客体之间的联系。
举例:比如我们来上课,上课和下课是一类事物,上课下课可以有自己的属性,学生,老师等,有自己的方法,用中文讲课,用英文讲课等,怎么讲课是怎么上课的行为而不是上课的每个事件。
AOP面向切面(Aspect Oriented Programming)
AOP应该属于OOP的范畴,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
AOP是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。