马金霞 宋传磊
【摘要】 面向过程程序设计方法在上世纪八九十年代被广泛接受和使用,并占据主导地位。面向对象程序设计方法问世后,软件开发方法面临着从面向过程范型到面向对象范型的转变,对象作为该方法的核心技术,正在得到新的开发语言和新的系统架构的支持,两种开发方法存在质的区别。
【关键词】 面向过程 面向对象 开发方法 区别
在软件开发过程中,有两个非常成熟、经典的开发方法:面向过程方法和面向对象方法。本文就个人认识对这两种方法的区别和联系做出简要阐述。
一、面向过程程序设计
面向过程程序设计基于结构化程序设计思想,强调程序结构规范为顺序、选择和循环三种基本结构,利用这三种结构的组合、嵌套,可以实现任何复杂的程序设计。遵循结构化程序设计思想设计的程序具有结构简单、规范、易理解、易维护等特点,这给程序的设计和维护带来了质的飞跃。
面向过程的程序设计方法,以算法为核心,把数据和处理过程作为相互独立的部分,数据代表问题域中的实体,而程序代码则用于处理这些数据。把数据和代码作为分离的实体,采用计算机的观点处理问题。计算机处理问题是分步进行的,要想让计算机实现某种功能,必须告诉计算机详细的解题步骤,即向计算机详细描述求解算法。所以,面向过程程序设计就是按照计算机的要求,围绕算法进行程序设计。
面向过程的程序设计方法,实质上是自顶向下的功能分解法,通过逐步求精的设计过程把程序分解成单一处理功能的模块,进而通过参数传递调用相应模块以实现程序的功能。系统功能的实现最终落实在相应的功能模块上,此功能模块可以理解为函数、过程、子程序、宏等。
以下通过C语言程序案例表述面向过程程序设计。
案例:
主功能模块main(),通过调用子功能模块swap(),实现两个整型变量值的交换。
编码实现:
#include “stdio.h”
int swap(int *p,int *q)
{int t; t=*p;*p=*q;*q=t;}
void main()
{int x,y;
scanf(“%d%d”,&x;,&y;);
printf(“交换前x=%d,y=%d\n",x,y);
swap(&x;,&y;);
printf(“交换后x=%d,y=%d\n",x,y);
}
二、面向对象程序设计
面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。
在面向对象的程序设计中,对象是组成程序的基本模块。
以下通过C++语言程序案例表述面向对象程序设计。
案例:
主功能模块main(),通过调用swap类的对象change,实现两个整型变量值的交换。
编码实现:
#include “iostream.h”
class swap
{private:
int t;
public:
void exchange(int &x;,int &y;){t=x;x=y; y=t;}
};
void main()
{int m,n;
cin>>m>>n;
swap change;
cout<<”交换前m=”< change.exchange(m,n); cout<<”交换后m=”< } 三、总结 面向对象的程序设计方法和面相过程的程序设计方法有着本质的区别。面向对象程序设计使用现实世界的概念抽象地思考问题,进而自然地解决问题,强调对现实世界的模拟而不强调算法,鼓励项目组人员在软件开发的过程中用应用领域的概念去思考,用对象的分解取代面向过程方法学中的功能分解,不再强调计算机解决问题的观点,而是重视现实世界的模型创建。 参 考 文 献 [1] 张海藩,吕云翔.软件工程.人民邮电出版社.2015 [2] 王育坚.Visual C++面向对象编程.清华大学出版社.2015