舉例說明物件導向和面向過程的區別

2021-06-28 14:45:30 字數 1745 閱讀 8048

兩種方法都是程式設計中的比較常用的方法,從理論上來說,都能達到用電腦程式來解決實際問題的目的,只不過是其中所體現出來的思想不一樣而已。

面向過程:面向過程的思想是把乙個專案、一件事情按照一定的順序,從頭到尾一步一步地做下去,先做什麼,後做什麼,一直到結束。這種思想比較好理解,其實這也是乙個人做事的方法。

物件導向:物件導向的思想是把乙個專案、一件事情分成更小的專案,或者說分成乙個個更小的部分,每一部分負責什麼方面的功能,最後再由這些部分組合而成為乙個整體。這種思想比較適合多人的分工合作,就像乙個大的機關,分成各個部門,每個部門分別負責某樣職能,各個部門可以充分發揮自己的特色,只要符合一定前提就行了。 

舉例說明1:比如剛才說的乙個大的機關,要做某乙個專案,從面向過程的思想來說,應該是這樣分析的,先怎麼樣,再怎麼樣,最後怎麼樣。第一樣應該如何完成,第二樣應該如何完成等等。等到每一步驟都完成,專案也就完成了。而物件導向的思想則應該是這樣想的,這個專案是由幾個部分組成的,我們就做好分工,成立乙個部門來做乙個部分的功能,另乙個部門來做另乙個部分。各個部門可以不用理解其他部門的事,只要完成自己那一部分的事情就ok了。 

舉例說明2:又比如我們有一台演出,為簡單起見,假設有如下流程:主持人開場——演員一表演——演員二表演——主持人總結。用面向過程的思想來分析,就是先完成主持人開場,再完成演員一的表演,再完成演員二的表演,最後完成主持人的總結。而如果用物件導向的思想來分析,就應該是這樣的。這個演出由兩大部分組成:主持人、演員。與主持人相關的:開場、總結。與演員相關的:演員編號、所演的節目。然後這台演出就可以這樣策劃:需要乙個主持人a,需

要兩個演員b、c。演出的事情可以表示為:a的開場——> b、c的編號和節目——> a的總結。

物件導向和面向過程的區別示例之 下棋

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。 

例如五子棋,面向過程的設計思路就是首先分析問題的步驟: 

1、開始遊戲,    2、黑子先走,    3、繪製畫面,    4、判斷輸贏,    5、輪到白子,    6、繪製畫面,    7、判斷輸贏,    8、返回步驟2,    9、輸出最後結果。 

把上面每個步驟用分別的函式來實現,問題就解決了。   

而物件導向的設計則是從另外的思路來解決問題。整個五子棋可以分為: 

1、黑白雙方,這兩方的行為是一模一樣的,    2、棋盤系統,負責繪製畫面,

3、規則系統,負責判定諸如犯規、輸贏等。 

第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子布局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定。 

可以明顯地看出,物件導向是以功能來劃分問題,而不是步驟。同樣是繪製棋局,這樣的行為在面向過程的設計中分散在了許多步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而物件導向的設計中,繪圖只可能在棋盤物件中出現,從而保證了繪圖的統一。 

功能上的統一保證了物件導向設計的可擴充套件性。比如我要加入悔棋的功能,如果要改動面向過程的設計,那麼從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的順序都要進行大規模調整。如果是物件導向的話,只用改動棋盤物件就行了,棋盤系統儲存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規則判斷則不用顧及,同時整個對物件功能的呼叫順序都沒有變化,改動只是區域性的。 

到這裡就可以很明顯的看出物件導向和面向過程的區別所在了。 

物件導向和面向過程

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...

物件導向和面向過程

物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...

物件導向和面向過程

面向過程 顧名思義,其中心意義在於 過程 二字,比如你要吃飯,那麼首先是要選地,播種,施肥,成熟,收穫,煮飯,然後才能吃飯,那麼面向過程就是從開始到結束,分析出解決問題的需要的每乙個步驟,然後用函式將這些步驟乙個乙個實現,使用的時候乙個乙個一次呼叫就行了。物件導向 同樣的,你去飯店吃飯的時候,只需要...