[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

    

posted @ 2018-11-23 19:07  ID长安忆  阅读(135)  评论(0)    收藏  举报