什么是POP?
POP——面向过程编程(Procedure Oriented Programming )
OOP的前身。面向过程程序设计,注重功能性的实现,以功能为中心,强调的是系统的数据被加工和处理的过程,只要把效果达到就行了。
从思维上来讲,面向过程更注重细节,忽视了整体性和边界性,但这与现实世界有很大的出入,因为现实世界中,这种过程都不是孤立存在的,而是从属于某个对象,因此,面向过程虽然反映了现实世界的而一个方面(功能),但无法更加形象的模拟或者表示现实世界。
什么是OOP?
OOP——面向对象编程(Object Oriented Programming )
面向对象程序设计,以对象为中心,世界是由一个个对象组成的,因此面向对象的思维方式更加接近现实世界,面向对象编程的组织方式也更加贴近现实世界。
将对象的内部组织与外部环境区分开,将表征对象的内部属性数据与外部隔离开来,其行为与属性构成一个整体,而系统功能则表现为一系列对象之间的相互作用的序列,能更加形象的模拟或表达现实世界。
POP、OOP之间关系?
这两者关系就可看作是局部和整体(相对的),
OOP强调封装
什么是AOP?
AOP——面向方(切)面(Aspect Oriented Programming)
AOP是OOP的延续和发展,它可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
OOP、AOP之间关系?
OOP针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。面向名词领域。
AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。面向动词领域
传统业务逻辑组件设计
面向切面的设计
三者之间关系对比?
POP
面向过程编程,是一种以事务为中心的编程思想.主要关注怎么做,就是完成任务的具体细节。当程序规模不是很大的时候还会体现出一点优势。
优点
性能比面向对象高。
缺点
调用类时需要实例化,开销比较大,没有面向对象易维护、易复用、易扩展。
OOP
面向对象编程,是一种以对象为基础的编程思想。主要关注“谁来做”,即完成任务的对象。将数据及对数据的操作行为放在一起,作为一个相互依存、不可分割的整体——对象
优点
易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点
性能比面向过程低
AOP
AOP是OOP的延续,解决OOP无法横向的问题。针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
优点
降低模块之间的耦合度,使系统容易扩展,更好的代码复用。
缺点
性能略低
三者不是取代关系,而使一种相互补偿,更好的提高开发效率,提高代码质量。