馬金霞 宋傳磊
【摘要】 面向過程程序設計方法在上世紀八九十年代被廣泛接受和使用,并占據主導地位。面向對象程序設計方法問世后,軟件開發方法面臨著從面向過程范型到面向對象范型的轉變,對象作為該方法的核心技術,正在得到新的開發語言和新的系統架構的支持,兩種開發方法存在質的區別。
【關鍵詞】 面向過程 面向對象 開發方法 區別
在軟件開發過程中,有兩個非常成熟、經典的開發方法:面向過程方法和面向對象方法。本文就個人認識對這兩種方法的區別和聯系做出簡要闡述。
一、面向過程程序設計
面向過程程序設計基于結構化程序設計思想,強調程序結構規范為順序、選擇和循環三種基本結構,利用這三種結構的組合、嵌套,可以實現任何復雜的程序設計。遵循結構化程序設計思想設計的程序具有結構簡單、規范、易理解、易維護等特點,這給程序的設計和維護帶來了質的飛躍。
面向過程的程序設計方法,以算法為核心,把數據和處理過程作為相互獨立的部分,數據代表問題域中的實體,而程序代碼則用于處理這些數據。把數據和代碼作為分離的實體,采用計算機的觀點處理問題。計算機處理問題是分步進行的,要想讓計算機實現某種功能,必須告訴計算機詳細的解題步驟,即向計算機詳細描述求解算法。所以,面向過程程序設計就是按照計算機的要求,圍繞算法進行程序設計。
面向過程的程序設計方法,實質上是自頂向下的功能分解法,通過逐步求精的設計過程把程序分解成單一處理功能的模塊,進而通過參數傳遞調用相應模塊以實現程序的功能。系統功能的實現最終落實在相應的功能模塊上,此功能模塊可以理解為函數、過程、子程序、宏等。
以下通過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