面向对象和面向过程

Serena ·
更新时间:2024-11-15
· 738 次阅读

今天整理自己观看软工视频的笔记,看到软工视频第四章主要在讲面向过程的软件设计方法,突然有个疑问,我们不是一直提倡面向对象的程序设计吗?为什么在这要学习面向过程?于是去查了一下。

基本思想的不同:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。  

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

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

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

适用语言:面向过程:c语言

                  面向对象:c++,c#,java,delphi

适用领域:面向过程:是一种以过程为中心的编程思想,主要是程序设计;

                  面向对象:已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

优缺点比较:面向过程:适用于小型规模的程序,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。但是,由于将客体的动作行为看为中心,因而对程序的稍一改动就有可能牵动全部,可维护性差;

                      面向对象:将客体与动作抽离开来,因而可维护性高,可重用性高,抽象级别高,封装性好。


作者:郭静静--Jennica



面向过程 对象 面向对象

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章