面向過程與物件導向程式設計的區別

2021-08-26 05:39:25 字數 823 閱讀 1513

通過查閱很多資料,最終覺得以下說法相對較容易理解:

​​​​​​​是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了;

把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

舉例子:

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

1、開始遊戲,

2、黑子先走,

3、繪製畫面,

4、判斷輸贏,

5、輪到白子,

6、繪製畫面,

7、判斷輸贏,

8、返回步驟2,

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

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

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

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

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

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

注:**於

面向過程與物件導向程式設計區別

1.概念 以時間為中心,把解決問題的步驟分析出來,然後按順序呼叫函式一步一步實現 物件導向方法的基礎實現中也包含面向過程的思想 2.特性 模組化流程化 3.優勢 效能相較物件導向較高 類呼叫的時候需要例項化,因此開銷大,比較消耗資源 eg 片機 嵌入式開發 linux unix等一般採用面向過程開發...

物件導向程式設計與面向過程程式設計的區別與聯絡

linuxc程式設計的學習已經告一段落,這段開始學c c 是物件導向程式設計,c語言是面向過程程式設計。因此學習c 的第一件事就是要弄明白什麼是面向過程程式設計,什麼是物件導向程式設計。之前學習的c語言是面向過程程式設計,回想一下c語言程式設計的過程。主函式,定義變數,呼叫函式然後實現。面向過程程式...

物件導向與面向過程區別

物件導向是以事物為中心的程式設計思想,把構建問題事務分解成各個物件,建立物件的目的是為了描述某個事物在整個解決問題的步驟中的行為 面向過程是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用時依次呼叫就可以了 區別 物件導向程式設計,往往是從問題的一部分著手,一點一點地構建出整個程式...