1. 程式人生 > >面向過程程式設計思想和麵向物件程式設計思想

面向過程程式設計思想和麵向物件程式設計思想

一、面向過程程式設計思想

百度百科這樣解釋:
“面向過程”(Procedure Oriented)是一種以過程為中心的程式設計思想。
面向過程其實是最為實際的一種思考方式,就算是面向物件的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模組化的思想方法。
個人理解:
通俗地講,我們在編寫程式碼時,我們看到是一步一步執行的過程——即面向過程。 最典型的就是c語言,其實就是通過函式體現,並不斷的呼叫函式,執行完成過程即可。
舉個例子,當我們解決一個“如何將大象裝入冰箱?”的問題時,最簡單的解決思路是面向過程解決:

1、關注過程,將大問題拆解為小問題,實現每個小問題的解決方法
a、開啟冰箱門
b、將大象裝入冰箱
c、關閉冰箱門
2、通過控制程式碼,控制模組執行,執行順序為a->b->c,問題解決。

雖然面向過程程式設計思想可能看起來比較笨拙,可能會造成程式碼臃腫,但是它卻是最貼近硬體的,CPU在執行指令的時候就是按照一條一條指令執行下去的。

二、面向物件程式設計思想

要了解面向物件,我們首先需要知道什麼是物件?

1、物件和類

萬事萬物都是物件,物件是自然界的任一個體,比如一本書、一支筆,一片葉子等,而物件和物件間是有相似之處的,比如書(每本書都是一個物件)都是由紙做成的,都印著內容(性質上的相似點),都是用來看的(行為上的相似點),將這些相似之處抽象出來就是類(抽象這個詞很難懂,那麼說成是分類、提取出事物的共同要素更易理解),類的例項就是物件。

2、面向物件程式設計思想

百度百科這樣解釋:
面向物件(Object Oriented,OO)是軟體開發方法。
面向物件的概念和應用已超越了程式設計和軟體開發,擴充套件到如資料庫系統、互動式介面、應用結構、應用平臺、分散式系統、網路管理結構、CAD技術、人工智慧等領域。
面向物件是一種對現實世界理解和抽象的方法,是計算機程式設計技術發展到一定階段後的產物。

當遇到一些簡單的程式或者邏輯時,我們可以使用面向過程的程式設計思想,當問題的規模稍大時,我們就需要用到面向物件的程式設計思想了
面向物件的主要特徵:
(1)封裝:
封裝是一種資訊隱蔽技術,它體現於類的說明,使資料更安全,是物件的重要特性。封裝使資料和加工該資料的方法(函式)封裝為一個整體,以實現獨立性很強的模組,使得使用者只能見到物件的外特性(物件能接受哪些訊息,具有那些處理能力),而物件的內特性(儲存內部狀態的私有資料和實現加工能力的演算法)對使用者是隱蔽的。封裝的目的在於把物件的設計者和物件者的使用分開,使用者不必知曉行為實現的細節,只須用設計者提供的訊息來訪問該物件。
(2)繼承:


繼承性是子類自動共享父類之間資料和方法的機制。它由類的派生功能體現。一個類直接繼承其它類的全部描述。如果沒繼承性機制,則類物件中資料、方法就會出現大量重複。繼承支援系統的可重用性,從而達到減少程式碼量的作用,而且還促進系統的可擴充性。
(3)多型:
物件根據所接收的訊息而做出動作。同一訊息為不同的物件接受時可產生完全不同的行動,這種現象稱為多型性。利用多型性使用者可傳送一個通用的資訊,而將所有的實現細節都留給接受訊息的物件自行決定。

三、面向過程和麵向物件程式設計的區別

(1)面向過程的思維方式是分析綜合。面向物件的思維方式是構造
(2)對面向過程而言,資料是獨立的。而在面向物件中,物件本身就提供了儲存資料的空間(類的資料成員),這樣就是函式的引數傳遞簡單多了,而且提供了資料封裝後,資料的訪問也變可靠了。
(3)面向過程就是將程式設計當成是做一件事,要按步驟完成,每一步就是一個過程。面向物件就是將程式設計當成是一個事物,對外界來說,事物是直接使用的,不用去管他內部的情況。
(4)面向過程是一種自頂向下的程式設計。面向物件是自下先建立抽象模型然後再使用模型。