一:基础概念
1.1 面向过程
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。
1.2 面向对象
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。
1.3 基于对象
基于对象的编程语言没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统,以供使用。
二:三者对比对比
面向过程 | 面向对象 | 基于对象 | |
产生时间 | 1965 | 1967 | - |
代表语言 | C | C++,JAVA | BASIC(VB4-VB6) |
基本特征 | 自顶向下,逐步求精 | 抽象、封装、继承、多态 | 封装 |
性能 | 好 | 较差 | 较好 |
维护难度 | 巨大 | 容易 | 较大 |
适用程序 | 一般用于小型 | 大型 | - |
三:具体例子
有人这么形容OP和OO的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭
盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。
用软件工程的专业术语就是“可维护性”比较好,“饭”和“菜”的耦合度比较低。
蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,以至于“可维护性”比较差。