回覆列表
  • 1 # 網路圈

    程式設計界有兩大思想:面向物件、面向過程,相信大家都很熟悉。常見的面向過程的程式語言有C,面向物件的語言有:C++、Java、C#、PHP、Python等。大多數雖說知道這兩者的概念,但要讓我們說出個所以然來,又不知從何說起。

    面向過程(POP)

    面向過程就是指分析出解決問題的步聚,透過函式一步步的去實現,並按順序去呼叫。整個事件都是過程驅動的,比如:開始 -》輸入資料 -》處理資料 -》迴圈 -》任務完成。因此也被稱為“結構化程式設計”。

    1、優點:

    效能上稍強於面向物件(沒有建立物件的開銷),一般注重效能開銷的系統基本會用POP模式開發,比如:微控制器、嵌入式開發、Linux開發等。

    2、缺點:

    程式碼片段過多、不易維護和擴充套件、不易複用。

    面向物件(OOP)

    我們將構成問題的事物理解成多個“物件”,無需關心物件內部是如何實現的,只要瞭解物件在整個問題處理中所做的行為即可。OOP有三大基本特性:繼承、封裝、多型。

    1、優點:

    易維護和擴充套件、易複用,採用面向物件思想可以設計出低耦合的系統,同時也增加了系統的靈活性。

    2、缺點:

    呼叫需要建立物件,增加系統開銷。

    二者關係

    嚴格意義上來說面向物件和麵向過程只是一種程式設計思想,這兩者也是相輔相成的關係。我們一般在宏觀(全域性)上以面向物件的思想來組織及表現事物間的複雜關係,但在微觀(區域性)上還是以面向過程形式完成具體功能。簡單來說,即使我們採用的是面向物件的程式設計思想來程式設計,依舊也存在面向過程的思想(比如類中方法的實現)。

  • 2 # Gfilsxin

    首先,我們先從程式語言的角度,看看這兩者之間的區別。

    面向過程最典型的程式語言就是C語言,面向物件的語言則有C++、java、C#等。

    C語言中,基本的資料型別就是變數、陣列、結構體、函式,當我們在使用這些資料型別程式設計時,主要考慮的就是如何把需要處理的資料放在合適的資料型別中,並按照事情發生的先後順序依次呼叫函式,完成業務邏輯的處理。

    而面向物件的語言中,最重要的概念就是類,類的例項化結果就是物件。這類語言在設計過程中,參考了很多現實生活中的處理模型,如汽車是一個很抽象的物體,但是如果說賓士汽車、寶馬汽車就很具體了,這些汽車又有高配低配之分,汽車可以行駛等。

    汽車的這些模型,分別對應面向物件中的基類、派生類、屬性和方法等概念。由此可見,在使用面向物件程式設計時,對資料的合理封裝是其主要核心工作。

    最後,總結一下,面向過程程式設計的核心技術是資料結構與演算法;面向物件程式設計的核心技術是23種設計模式。大家一定要熟練掌握!

  • 中秋節和大豐收的關聯?
  • 高祖這個廟號是不是劉邦之後才出現的呢?為何會有商高祖王亥?