面向過程與物件導向的區別

2021-08-29 22:33:02 字數 1409 閱讀 5858

面向過程

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步步實現,使用的時候乙個乙個依次呼叫。

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

例一:五子棋
【面向過程】的設計思路就是首先分析問題的步驟:1、開始遊戲; 2、黑子先走;3、繪製畫面;4、判斷輸贏;5、輪到白子;6、繪製畫面;7、判斷輸贏;8、返回步驟2;9、輸出最後結果。把這些步驟用不同的函式(方法)來實現。

【物件導向】的設計思路就是把整個五子棋分為:1、黑白雙方,兩方的行為一模一樣;2、棋盤系統,負責繪製畫面;3

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

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

例二:蛋炒飯與蓋澆飯
用【面向過程】的方法寫出來的程式是乙份蛋炒飯。蛋炒飯的好處就是入味均勻,吃起來香。不過製作工序相對繁瑣,而且口味搭配少。

而用【物件導向】寫出來的程式是乙份蓋澆飯。蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那麼香。但是製作方便、靈活,口味搭配多。

面向過程
優點:效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源;比如微控制器、嵌入式開發、 linux/unix等一般採用面向過程開發,效能是最重要的因素;

缺點:沒有物件導向易維護、易復用、易擴充套件

物件導向
優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易於維護

缺點:效能比面向過程低

1、什麼是物件

2、什麼是屬性

3、什麼是方法

4、什麼是類

小結:

在物件導向的實際開發中,屬性和方法組成類,類例項化成物件。

備註:僅個人學習記錄

參考:

物件導向與面向過程區別

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

物件導向與面向過程的區別

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

面向過程與物件導向的區別

面向過程 1 現實世界是物件,分析階段是物件,在設計及開發階段是方法與方法之間的呼叫,與現實世界 分析階段不統一,容易出現偏差,增加了開發的難度,容易 出問題。2 因為方法與方法之間的直接呼叫,讓我們系統依賴底層具體實現,而不是 依賴高層概念及巨集觀的商業邏輯。3 方法與方法之間有呼叫 的藕合度太,...