物件導向和面向過程有什麼區別

2021-07-23 19:14:45 字數 1029 閱讀 6961

面向過程程式設計採取的是時間換空間的策略,因為在早期計算機配置低

,記憶體小,如何節省記憶體則成了首要任務,哪怕是執行的時間更長。隨著硬體技術的發展,硬體不再成為瓶頸,相反更好的模擬現實世界、系統的可維護性等問題凸顯出來,於是物件導向設計應運而生。當下:應用在

pc機上的一般應用系統,由於不太需要考慮硬體的限制,而系統的可維護性等方面卻要求很高,一般採用物件導向方式;而在記憶體限制有所要求的嵌入式系統,則大多採用面向過程方式進行設計程式設計。

問:經常聽到有人說,計算機語言可以歸為面向過程語言和物件導向語言,那麼到底什麼是物件導向,什麼是面向過程呢?

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

可以拿生活中的例項來理解面向過程與物件導向,例如五子棋,面向過程的設計思路就是首先分析問題的步驟:

1、開始遊戲,

2、黑子先走,

3、繪製畫面,

4、判斷輸贏,

5、輪到白子,

6、繪製畫面,

7、判斷輸贏,

8、返回步驟2,

9、輸出最後結果。把上面每個步驟用不同的方法來實現。

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

1、黑白雙方,這兩方的行為是一模一樣的,

2、棋盤系統,負責繪製畫面,

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

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

物件導向與面向過程有什麼區別?

1 出發點不同。物件導向方法使用符合常規思維的方式來處理客觀世界的問題,強調吧問題域的要領直接對映到物件及物件之間的介面上。面向過程方法強調則是過程的抽象化與模組化,它是以過程為中心構造或處理客觀世界的問題。2 層次邏輯關係不同。物件導向方法則是用計算機的邏輯模擬客觀世界中的物理存在,以物件的集合類...

物件導向和面向過程區別

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

函式式和物件導向程式設計有什麼區別?

左列 int,add,negate 是三個變式 variant eval,tostring,haszero 是三種操作,這裡要做的是填滿這個 分別實現三個變式的三種操作。函式式程式設計是寫三個函式代表三個方法。然後資料作為引數傳人。物件導向程式設計是資料是主體,然後每個主體上繫結三個方法 函式式程式...