一、面向对象的特点

什么是对象,简单来说对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性。

      用思维导图来简洁表示一下就是这样:

面向对象就是构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

二、面向过程的特点

什么是过程,我认为过程就是步骤,是解决问题的按部就班。

面向过程用图片表示:

面向过程不同于面向对象,面向过程分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

三、面向对象和面向工程的区别

之前在那篇博客上看到这个比喻,觉得特别恰当,挺容易让人理解的,现在分享一下:

用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。

蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。

到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。

盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是”可维护性“比较好,”饭”
和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。

四、总结

面向过程:

 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展

面向对象:

 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 缺点:性能比面向过程低

面向对象与面向过程的理解相关推荐

  1. 对面向对象和面向过程的理解

    面向过程的程序设计 比如说,要去做一件事情,那么我就需要知道这件事情要怎么做,第一步应该做什么,第二步应该做什么,我们都会不自觉的按部就班的罗列出我们要做的事情.而当我们按着我们罗列的步骤去解决问题时 ...

  2. 关于面向对象和面向过程的简单理解

    关于面向对象和面向过程的理解 1.什么是面向过程? 大概意思:就是做一件事情,走大到小,从里到外,每个步骤的细节(自上向下,逐步细化).

  3. 面向对象和面向过程简述

    面向对象和面向过程 个人理解 不喜勿喷 : 面向对象的更多的在于关注事物之间的关系, 很清晰的表述自然界事物的关系并总结一般规律, 对象具有的特征,行为都能在面向对象语言中得到很好的体现, 面向对象 ...

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

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

  5. 通俗理解面向对象和面向过程+编程思想

    上午单位的C++大佬给我们分享了一些编程思想,开始介绍了面向对象和面向过程 面向过程是什么,就是对事件的过程进行编程,我们已知事件的发展过程,我们根据过程发展的节点去编程.整个编程是过程驱动,开始,然 ...

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

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

  7. 简单理解面向对象和面向过程

    简单理解面向对象和面向过程 一. 面向过程和面向对象的区别 面向过程:面向过程就是分析解决问题所需要的步骤,然后 用函数把这些步骤一步一步实现,使用时一个一个依次调用即可: 面向对象语言:指用于描述的 ...

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

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

  9. 面向对象编程(一)——面向对象和面向过程

    面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向 ...

最新文章

  1. C语言---二分法搜索
  2. CSDN网友挑选的2007年最有价值文章
  3. UML作业第五次:分析系统,绘制状态图
  4. Python装饰器 计时器记录方法执行性能
  5. C#多线程编程(转)
  6. C# 运算符及条件控制语句
  7. 后退返回命令数量_Redis | Redis 有序集合相关命令
  8. java备份还原mysql数据库_Java备份还原Mysql数据库
  9. 训练日志 2019.1.12
  10. 数据结构中La表的数据合并到Lb表中
  11. 使用ETags减少Web应用带宽和负载
  12. 细数那些你可能不知道的国产数据库
  13. SpringBoot之Bean之条件注入@ConditionalOnExpression
  14. java hashmap 去重_java数组去重的两种方法
  15. sql:Mysql create view,function,procedure
  16. 数据结构——结构体总结
  17. AD09铺铜 (画完PCB后改线与铺铜冲突)
  18. [cuda]cuda驱动版本对应+旧版本cuda下载网址
  19. 【字符串】13. 罗马数字转整数
  20. Java随机生成中文姓名工具

热门文章

  1. 正则表达式匹配标签里面的内容
  2. excel 多列内容合并为一个单元格
  3. MPEG音频编码三十年
  4. 网易互娱游戏研发岗准备
  5. manifest文件解决兼容性助手问题
  6. 小程序、APP、企业网站开发工具有哪些?如何使用软件开发工具?
  7. [疯狂Java]JDBC:事务管理、中间点、批量更新
  8. Programming Ruby 读书笔记(四)
  9. Rasa 3.x 学习系列-Rasa [3.4.0] - 2022-12-14新版本发布
  10. 倾斜摄影——三维建模软件ContextCapture (简体中文版安装教程-附软件下载)