如何理解POP,OOP,AOP之间的关系
POP—面向过程编程(Process Oriented Programming)
面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式。
OOP—面向对象编程(Object Oriented Programming)
面向对象的思维方式更加接近现实世界,面向对象编程的组织方式也更加贴近现实世界。面向对象以对象为中心,将对象的内部组织与外部环境区分开来,面向对象具有更强、更简洁的对现实世界的表达能力。从而增强了编程的组织性,重用性和灵活性。
面向对象依然保留着面向过程的特性,面向过程中的功能变成了对象的方法,加工处理功能变成了对象的服务性方法,而这部分方法依然需要外界的输入,同时也对外界进行输出,只是输入和输出也变成了对象。
OOP的三大特征:
- 封装
举一个生活中的封装例子:比如电视机就是一个封装,你按遥控它就会换台,还能调节音量大小,但是你并不用关心电视机是怎么实现这个过程的,你只需要调用遥控器这个接口用就行了。 - 继承
继承正如其名,继承上一代的东西。继承了某对象将拥有该对象的属性和方法,并且还可以自己拓展添加自己的属性和方法。面向对象的继承特性,这可以增加代码的可重用性,拓展,修改。在想要拓展功能的时候不必重写整个对象,只需继承了然后在写新的属性,方法就好了。
class person //class关键字是定义一个类。而类可以理解为一个对象
{
String name;
int age;
}
class student extend person //学生类继承了人类
{
//具有一切人类的属性
}
- 多态
多态性要继承作为基础,多态性简单的说就是能够去重写继承对象的方法。因为父对象的方法不能满足子对象的需求,所以在子对象中对父对象方法进行重写,以满足子对象的需求。多态也正如其名,具有多种形态,多态也体现了灵活性。多态对已存在的代码具有可替换性。多态也是可以说是父对象提供一个接口,然后让各子类来根据实际情况进行完善。
AOP—面向方面编程(Aspect Oriented Programming)
AOP是OOP的延续和补充。OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。在 OOP 的思想下,我们会将系统在垂直上拆分成多个模块,每个模块都相对独立,都有各自的职责划分。AOP 的做法就是: 在预编译或者运行时,动态地将统一的代码切入到类的指定方法、指定位置上。一般而言,我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。
参考资料: