1. 程式人生 > >面向物件與面向過程的程式設計思想比較

面向物件與面向過程的程式設計思想比較

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

面向過程”是一種以事件為中心的程式設計思想。

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

  “面向物件”(Object Oriented,簡稱OO)是一種以事物為中心的程式設計思想。

  面向物件的程式設計(Object-OrientedProgramming,簡記為OOP)

  比如以公共汽車而言。

  “面向過程”就是汽車啟動是一個事件,汽車到站是另一個事件。在程式設計序的時候我們關心的是某一個事件。而不是汽車本身。我們分別對啟動和到站編寫程式。類似的還有修理等等。

  到了程式設計就是:

  publicclass 運營

  {

  void 汽車啟動

  {

  }

  void 汽車到站

  {

  }

  }

  “面向物件”需要建立一個汽車的實體,由實體引發事件。我們關心的是由汽車抽象成的物件,這個物件有自己的屬性,象輪胎,顏色等;有自己的方法,象啟動,行駛等.方法也就是汽車的行為.而不是汽車的每個事件

public class 汽車

  {

  void 到站()

  {

  }

  void 啟動()

  {

  }

  }

  使用的時候需要建立一個汽車物件,然後進行應用。

  面向過程其實是最為實際的一種思考方式,就是算面向物件的方法也是含有面向過程的思想.可以說面向過程是一種基礎的方法.它考慮的是實際的實現.一般的面向過程是從上往下步步求精.所以面向過程最重要的是模組化的思想方法.對比較面向物件,面向物件的方法主要是把事物給物件化,物件包括屬性與行為.當程式規模不是很大時,面向過程的方法還會體現出一種優勢,因為程式的流程很清楚,按著模組與函式的方法可以很好的組織.比如拿學生早上起來的事情來說說這種面向過程吧.粗略的可以將過程擬為:

  (1)起床

  (2)穿衣

  (3)洗臉刷牙

  (4)去學校

  而這4步就是一步一步的完成,它的順序很重要,你只須一個一個的實現就行了.而如果是用面向物件的方法的話,可能就只抽象出一個學生的類,它包括這四個方法,但是具體的順序就不能體現出來.

上述文章是本人在學習matlab面向物件程式設計matlab中類的定義方法時困惑後搜尋資料的結果。這是在學習程式設計時的整體程式設計思想到的劃分,具有很好的系統性。

面向過程的程式設計更像是去按照事情的順序去編寫,而面向物件的程式設計思想更像是先定義了物件某一事物的屬性後再去編寫方法。這個事物有自己的屬性,然後再在方法Methods中定義事物的行為,上述文章以汽車為例,形象的描述這兩種思想的迥異,實為經典!

下一篇文章將會貼出學習面向物件的程式設計之matlab中類的定義及使用。