前言

上周上课,老师提出了一个问题,程序设计有面向对象和面向过程两种常用设计理念。请你回答他们各自的目的和各自的有缺点。请举例,进行详细的论述。
我发现我怎么也搞不清楚,按老师的话说就是良莠不齐,如果现在不将面向对象和面向过程搞清楚,那么以后写的代码维护起来相当麻烦,开发成本太大。以后可能就加班改代码。。。。
下面就让我来总结一下面向对象与面向过程各自的目的,各自的优缺点。

面向对象与面向过程的区别

面向对象的关注点是对象。
面向对象:是我们要注重多少人来干事,而不是干多少事。我们要注重谁来干事,而不是怎么干事。

面向过程的关注点是过程。

拿生活中的例子举例,如让某人帮我打杯水。面向过程的设计思路是分析出实现的步骤:1.找到一个人、2.告诉他打水的地点、3.告诉他用那个杯子打水、4、进行打水,5、将水送给我。
面向对象的设计思路是:整个打水可以分为:参与者(受水人、打水人)、打水工具、打水地点、水。

面向对象与面向过程的各自的目的

面向对象和面向过程没有好坏之分。

面向对象目的是通过建立对象使构成的程序,可维护,可扩充,可复用。所以面向对象主要侧重于
面向过程的目的:运用逻辑分析出解决问题所需要的步骤,然后把这些步骤一步一步实现。主要侧重于小型程序。

面向对象与面向过程的有缺点

面向过程

优点:由于不涉及到类的调用,以及类的实例化。效率高、开销小。
缺点:不宜维护、不宜复用、不宜扩展

面向对象

优点:易扩展、易维护、易复用
缺点:转变看问题的角度需要训练,专注的不是细节而是参与者和表现者、开销大。

那么像linux这样的大型系统,为什么要用C语言这样的面向过程的语言去开发呢?面向过程的语言,它最大的优势就是他的实时性和效率高。而linux是操作系统,操作系统它要求尽可能快的响应用户要求,同时减少资源的占用。所以尽管面向过程复用性不好,维护性不好,扩展性不好,单依旧必须选择面向过程的语言。因为我们第一要求施响应速度开,占用资源少。现在linux基本上不用C语言了,基本上用的是C++(面向对象语言)开发,因为使用C语言开发成本太高了,另一方面的原因也是由于目前技术的进步。

面向对象与面向过程最本质的区别相关推荐

  1. 面向对象与面向过程的本质的区别

    前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点时间来研读一下这篇博客,你一定会有很大的收获的! 一.面向对象与面向过程的区别 面向过程就是分析出解决 ...

  2. java是面向对象还是面向过程_面向对象和面向过程最本质的区别是什么?

    面向对象和面向过程最本质的区别在于考虑问题的出发点不同,面向过程是以事件流程为考虑问题的出发点,而面向对象则是以参与事件的角色(对象)为考虑问题的出发点,所以面向对象在处理问题时更加灵活.目前,面向过 ...

  3. 深入理解面向对象和面向过程

    面向对象基本概念: 面向对象 ( Object Oriented ) 是将现实问题构建关系,然后抽象成 类 ( class ),给类定义属性和方法后,再将类实例化成 实例 ( instance ) , ...

  4. 面向对象与面向过程理解

    本文源地址: http://blog.csdn.net/ithzhang/article/details/52983530 http://blog.csdn.net/ithzhang/article/ ...

  5. 设计模式-面向对象和面向过程

    何为面向对象,何为面向过程.相信大家在大学计算机课程的时候,老师都会讲,C语言是面向过程的语言,而JAVA是面向对象的语言,甚至将JAVA列为高级编程语言,C语言是基础编程语言.那么,为什么是这样呢, ...

  6. 面向对象与面向过程区别

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

  7. 什么是面向对象、面向过程与面向对象的区别

    要讲区别,首先我们得先来弄弄清楚什么是面向过程,什么是面向对象. 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. 比如把大象放进冰箱,第一 ...

  8. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  9. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

最新文章

  1. python中属性和类级变量_六、Python类变量和实例变量(类属性和实例属性)
  2. xmlHttpRequest避免缓存的办法
  3. net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法
  4. python小程序-Python基本小程序
  5. 检测网络耗时_无人机替代桥梁检测车检测桥梁的可行性分析
  6. pytroch model??(查看官方模型写法)
  7. 软件企业变更管理流程
  8. 计算机硬盘数据如何恢复,如何防止硬盘数据被恢复?毁灭数据教程
  9. 【第三方互联】5、网页添加QQ好友及QQ群组
  10. 揭秘网上到处晒淘宝客月收入过万的真相
  11. 【Android自动化测试】Robot Framework+adb框架(三)——L3公共层
  12. VINS-Mono关键知识点总结——边缘化marginalization理论和代码详解
  13. vps和云主机哪个好
  14. 2017最新总结政府大数据应用案例及启示
  15. 他们竟用后台数据偷窥喜欢的女性!
  16. 怎么调节PDF文件的尺寸大小?
  17. bp神经网络,多输入多输出,3层网络matlab程序
  18. 《ROS2机器人建模URDF》8.4控制移动机器人轮子运动
  19. ICLR22 自监督graph learning------------AUTOMATED SELF-SUPERVISED LEARNING FORGRAPHS--- 密歇根州立
  20. 单片机中 读引脚 和读锁存器的区别

热门文章

  1. sqlserver对cpu主频要求_记一次SQLServer服务器CPU飙升100%的处理
  2. uniapp 生命周期(onLoad跟onLoadonShow的区别)
  3. python对有重复值的列求和之后放到第一次出现的位置
  4. access数据库剔除重复项_如何处理access中重复内容去除?
  5. c语言抽象数据类型复数,抽象数据类型复数的实现..doc
  6. asp.net汽车保养美容店维修管理系统
  7. Socket接口测试工具 (socket.io.js)
  8. 计算机网络 - 练习(三十八)
  9. SQL Server 2017安装
  10. Fedora 添加国内源(sohu, 163)