1. 程式人生 > >面向過程和麵向物件

面向過程和麵向物件

面向過程程式設計:

  • 以事件為中心,以功能為導向,分析某個問題的所需要的步驟,實現每個步驟的函式,不斷呼叫函式。
  • 面向過程程式設計,首先是如何操作資料,在考慮如何組織資料。資料和對資料的操作是分離的。
  • 面向過程程式設計以設計各個功能模組為中心,難於維護。

面向物件程式設計:

物件:物件就是人們研究的任何一個事物,一件物品是一個物件,一個規則,計劃,事件也是一個規則。物件具有狀態,用資料來描述,還具有操作,用於改變物件的狀態,物件及其操作就是物件的行為。物件實現了資料和操作的結合,是資料和操作封裝在物件的統一體中。 :具有相同或相似性質的物件的抽象成為類。類的具體化,例項化就是物件。

  • 以資料為中心,然後再去考慮演算法。
  • 面向物件技術,是一種以物件為基礎,以事件或訊息驅動物件執行處理的程式設計技術。
  • 三大特點: 封裝:將具有相同特性的一組物件抽象成一個類, 繼承:子類可以繼承父類的特性,並且可以擴充套件父類的特性,有良好的擴充套件性和複用性 多型:介面多種不同的實現方式稱為多型。一個同樣的操作在不同物件中完成不同的執行結果。 (封裝可以隱藏細節,使程式碼模組化;繼承可以擴充套件已存在的類,他們的目的都是為了程式碼的重用;而多型是為了實現介面的重用)
  • 面向物件程式設計是將問題劃分為各個物件,建立物件的目的不是為了完成某個步驟,而是為了描述物件在整個問題中的行為。
  • 面向物件程式設計是以資料為中心來解決問題,資料對於功能而言更加穩定,易於維護。

例如: 一輛汽車的行駛 用面向過程的思想:考慮如何啟動汽車,起步,加速,剎車,熄火等一個個操作過程,對應於每一個函式,在主函式中的不斷呼叫,來完成整個過程。在這裡思考的是完成這個問題的各個操作步驟,而不關心汽車這個主體。 用面向物件的思想:把汽車作為一個物件,汽車的功能都在物件的屬性裡,幹什麼事情呼叫汽車這個物件即可。

C ,Java ,C++這些語言,他們之間並沒有面向物件和麵向過程之分。C語言通常說是面向過程的語言,但也可以面向物件,Linux核心程式碼就是如此。C++和Java通常寫面向物件的程式,因為這兩個語言來實現面向物件更容易一些,但並不是侷限於面向物件,也可以實現面向過程的程式設計。 面向物件雖然好維護,但也不能說他一定優於面向過程,有些領域用面向物件無法實現,比如硬體程式設計和嵌入式程式設計這種實時性和效率性要求更高的領域。面向物件的主要領域還是用在大型複雜的軟體系統中。 參考:

https://blog.csdn.net/zhangtxxf/article/details/79109922 https://wenku.baidu.com/view/554c08a0b0717fd5360cdcb6.html