面向过程的程序设计

比如说,要去做一件事情,那么我就需要知道这件事情要怎么做,第一步应该做什么,第二步应该做什么,我们都会不自觉的按部就班的罗列出我们要做的事情。而当我们按着我们罗列的步骤去解决问题时,实质上就是按照面向过程的思想去解决问题。我们罗列的步骤就是过程,按照步骤解决问题
就是面向过程。在程序设计语言中,我们会通过函数来解决,将要做事情的每一个步骤都给成一个函数,通过函数调用的关系完成每一步的步骤。
(1)将要实现的功能描述为一个从开始到结束按部就班的连续的步骤
(2)依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步 骤再次细化为若干个子步骤,以此类推,一直到结束得到想要的结果;
(3)程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程!
面向过程,就是按照我们分析好了的步骤,按部就班的依次执行就行了!所以当我们用面向过程的思想去编程或解决问题时,首先一定要把详细的实现过程弄清楚。一旦过程设计清楚,代码的实现简直轻而易举。
(面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了)

面向过程的优点和缺点

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

面向对象的程序设计

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。所谓的面向对象,就是在编程的时候尽可能的去模拟真实的世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。 现实世界中,任何一个操作或者是业务逻辑的实现都需要一个 实体来完成,也就是说,实体就是动作的支配者,没有实体,就肯定没有动作发生!

当采用面向对象的思想解决问题时,可分为下面几步:
  • 分析哪些动作是由哪些实体发出的;
  • 定义这些实体,为其增加相应的属性和功能;
  • 让实体去执行相应的功能或动作。
面向对象的优点和缺点
  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
  • 缺点:性能比面向过程低

举例了解面向对象和面向过程的区别

可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

在我们将面向过程和面向对象讨论完后,会明显的感觉两者之间有着很大的区别。面向过程简单直接,易于入门理解,模块化程度较低。而面向对象相对于面向过程较为复杂,不易理解,模块化
程度较高。可总结为下面三点:都可以实现代码重用和模块化编程,但是面对对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑从前期开发角度上来看,面对对象远比面向过程要复杂,但是 从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!

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

  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. 【收藏】万字综述,核心开发者全面解读PyTorch内部机制
  2. 爬虫之 lxml模块和xpath语法
  3. 理解 ajax、fetch和axios
  4. Java的知识点24——多线程技术理论——程序、进程、线程
  5. 最简洁粗暴版的虚拟用户配置FTP
  6. DWZ 在js中刷新某个navTab
  7. html列表按时间排序代码_按字母顺序排序的列表
  8. 南信大c语言实验8报告,北科大C语言程序设计实验报告8论文报告.doc
  9. Cookie投票程序
  10. 如何攻克 C++ 中复杂的类型转换?
  11. python set 原理_Python基础教程之dict和set
  12. 拓端tecdat|Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
  13. android 动画效果
  14. Centos下PHP5升级PHP7
  15. 通信用特种光缆的选型
  16. Eplan教学视频合集-百度网盘-收集于网络,供参考
  17. WebStorm调试
  18. [面试经验]一汽大众旗下车联网公司摩斯智联面试记
  19. HTML5 CSS3 生日快乐动画网页(粉红色的回忆)
  20. jenkins配置Pipeline项目报错

热门文章

  1. Unity3D的传送带和物体移动
  2. houdini 常用命令
  3. WPF textbox禁用输入法
  4. Ubuntu支持LinuxONE大型机:为云而生的强强新组合
  5. 中职中职计算机英语试题,中职英语试卷及参考答案
  6. IC 后端仿真: process corner 和 PVT
  7. 大疆aeb连拍_一张图带你轻松读懂摄影必备专业术语~
  8. 最新款iPad,真香!!
  9. spring中c3p0配置 ---这是一位仁兄的经历
  10. Mac必备效率软件|Alfred的基础使用教程