[18/11/23]面向对象和面向过程
1、区别与联系
面向过程(C和C++): 关心的是“怎么按步骤实现?” 并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务(通俗讲:就是不需要过多协作的情况下)。
如:如何开车? (单人就可以做) 步骤:1. 发动车点火 2. 挂挡 3.踩油门 4. 走 。 不去关心车是怎么造出来的!
面向对象(java): 关心的是 “怎么设计这个事物?” 此时需要多人协作 (单人是无法完成的),是个系统工程。
如:如何造车?(需要多人协作) 想到一辆车由 1. 轮胎 2. 发动机 3. 车壳 4. 座椅 5. 挡风玻璃 等组成。为了协作,可以找轮胎厂完成造轮胎的步骤,发动机厂完成造发动机的步骤。而且各个厂可以同时开工,最终组装,大大提高了效率。
【联系】具体到一个轮胎的制造,在流水线上还是有步骤的,这就是面向过程的思想。
2、总结
(1).面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。
(2).一个经典的比喻:面向对象是盖浇饭、面向过程是蛋炒饭。盖浇饭的好处就是“菜”、“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。
【扩展】对象发展简史
为了便于协作和管理,我们“将相关数据和相关方法封装到一个独立的实体”,于是“对象”产生了。 比如,我们的一个学生对象:
有属性(静态特征):年龄:18,姓名:高淇,学号:1234
也可以有方法(动态行为):学习,吃饭,考试
1.对象说白了也是一种数据结构(对数据的管理模式),将数据和数据的行为放到了一起。
2.在内存上,对象就是一个内存块,存放了相关的数据集合!
3.对象的本质就一种数据的组织方式!
链接:http://www.sxt.cn/Java_jQuery_in_action/Object_evolutionary_history.html

浙公网安备 33010602011771号