对面向对象和面向过程的理解
面向过程的程序设计
比如说,要去做一件事情,那么我就需要知道这件事情要怎么做,第一步应该做什么,第二步应该做什么,我们都会不自觉的按部就班的罗列出我们要做的事情。而当我们按着我们罗列的步骤去解决问题时,实质上就是按照面向过程的思想去解决问题。我们罗列的步骤就是过程,按照步骤解决问题
就是面向过程。在程序设计语言中,我们会通过函数来解决,将要做事情的每一个步骤都给成一个函数,通过函数调用的关系完成每一步的步骤。
(1)将要实现的功能描述为一个从开始到结束按部就班的连续的步骤
(2)依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步 骤再次细化为若干个子步骤,以此类推,一直到结束得到想要的结果;
(3)程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程!
面向过程,就是按照我们分析好了的步骤,按部就班的依次执行就行了!所以当我们用面向过程的思想去编程或解决问题时,首先一定要把详细的实现过程弄清楚。一旦过程设计清楚,代码的实现简直轻而易举。
(面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了)
面向过程的优点和缺点
- 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
- 缺点:没有面向对象易维护、易复用、易扩展
面向对象的程序设计
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。所谓的面向对象,就是在编程的时候尽可能的去模拟真实的世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。 现实世界中,任何一个操作或者是业务逻辑的实现都需要一个 实体来完成,也就是说,实体就是动作的支配者,没有实体,就肯定没有动作发生!
当采用面向对象的思想解决问题时,可分为下面几步:
- 分析哪些动作是由哪些实体发出的;
- 定义这些实体,为其增加相应的属性和功能;
- 让实体去执行相应的功能或动作。
面向对象的优点和缺点
- 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
- 缺点:性能比面向过程低
举例了解面向对象和面向过程的区别
可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。
如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
在我们将面向过程和面向对象讨论完后,会明显的感觉两者之间有着很大的区别。面向过程简单直接,易于入门理解,模块化程度较低。而面向对象相对于面向过程较为复杂,不易理解,模块化
程度较高。可总结为下面三点:都可以实现代码重用和模块化编程,但是面对对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑从前期开发角度上来看,面对对象远比面向过程要复杂,但是 从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!
对面向对象和面向过程的理解相关推荐
- 面向对象与面向过程的理解
一.面向对象的特点 什么是对象,简单来说对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性. 用思维导图来简洁表示一下就是这样: 面向对象就是构成问题事务分解成各个对象,建立对象的目的 ...
- 关于面向对象和面向过程的简单理解
关于面向对象和面向过程的理解 1.什么是面向过程? 大概意思:就是做一件事情,走大到小,从里到外,每个步骤的细节(自上向下,逐步细化).
- 面向对象和面向过程简述
面向对象和面向过程 个人理解 不喜勿喷 : 面向对象的更多的在于关注事物之间的关系, 很清晰的表述自然界事物的关系并总结一般规律, 对象具有的特征,行为都能在面向对象语言中得到很好的体现, 面向对象 ...
- 面向对象与面向过程理解
本文源地址: http://blog.csdn.net/ithzhang/article/details/52983530 http://blog.csdn.net/ithzhang/article/ ...
- 通俗理解面向对象和面向过程+编程思想
上午单位的C++大佬给我们分享了一些编程思想,开始介绍了面向对象和面向过程 面向过程是什么,就是对事件的过程进行编程,我们已知事件的发展过程,我们根据过程发展的节点去编程.整个编程是过程驱动,开始,然 ...
- 深入理解面向对象和面向过程
面向对象基本概念: 面向对象 ( Object Oriented ) 是将现实问题构建关系,然后抽象成 类 ( class ),给类定义属性和方法后,再将类实例化成 实例 ( instance ) , ...
- 简单理解面向对象和面向过程
简单理解面向对象和面向过程 一. 面向过程和面向对象的区别 面向过程:面向过程就是分析解决问题所需要的步骤,然后 用函数把这些步骤一步一步实现,使用时一个一个依次调用即可: 面向对象语言:指用于描述的 ...
- 面向对象与面向过程区别
面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...
- 面向对象编程(一)——面向对象和面向过程
面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向 ...
最新文章
- 【收藏】万字综述,核心开发者全面解读PyTorch内部机制
- 爬虫之 lxml模块和xpath语法
- 理解 ajax、fetch和axios
- Java的知识点24——多线程技术理论——程序、进程、线程
- 最简洁粗暴版的虚拟用户配置FTP
- DWZ 在js中刷新某个navTab
- html列表按时间排序代码_按字母顺序排序的列表
- 南信大c语言实验8报告,北科大C语言程序设计实验报告8论文报告.doc
- Cookie投票程序
- 如何攻克 C++ 中复杂的类型转换?
- python set 原理_Python基础教程之dict和set
- 拓端tecdat|Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
- android 动画效果
- Centos下PHP5升级PHP7
- 通信用特种光缆的选型
- Eplan教学视频合集-百度网盘-收集于网络,供参考
- WebStorm调试
- [面试经验]一汽大众旗下车联网公司摩斯智联面试记
- HTML5 CSS3 生日快乐动画网页(粉红色的回忆)
- jenkins配置Pipeline项目报错