簡介
面向過程和面向對象是兩種截然不同的思維方式。面向過程的程式設計産生在前,面向對象的程式設計産生災後,是以面向對象的程式設計一定繼承前者的一些優點,并摒棄前者存在的一些缺點,這兩在發展和演變過程中,也互相借鑒,互相融合,來吸收對方的優點,是以并不能斷言誰好誰不好,隻有更加合适的利用。
面向過程
什麼是面向過程的程式設計:
面向過程的程式設計中最常用的分析方法是“功能分解”。也就是将使用者的需求先分解成子產品,然後把子產品分解成一個一個的函數,直到分解成一條條程式語句為止。
面向過程設計把重點放在解決問題的功能子產品劃分上,将資料和操作這些資料的函數分開,資料處于次要地位,而過程即子產品劃分是關心的焦點。
了解:
面向過程程式設計更加關注的是“程式的邏輯流程”,是一種“執行者”思維,适合編寫小規模的程式,面向過程适合簡單、不需要協作的事務。(強調于程式過程)
舉例:
面向過程成産汽車,需要關注的點太多了,細化到每一個零件上,所需要的資訊量太大,但是一但實作流水線,就能快速的完成組裝,效率極高,花都工廠一小時可生産60輛汽車。但是流水線的問題也很明顯,如果一個零件組裝出問題,一條線就不能繼續生産,一條線不能生産則,一個工廠中的房間不能生産。
優點:
- 程式順序執行,流程清晰明了。
- 性能比面向對象高
缺點
- 主要制程式承擔了太多的文物,各個子產品都需要主要制程式進行控制和排程,主要和子產品之間的承擔任務不均衡;
- 如果資料結構發生變化,相關的函數必須跟着變化;
- 總體設計時要分析的問題量大、面廣、複雜;
- 課題組成之間的借口資訊多、協調難、效率低;
- 可複用性差;
面向對象
什麼是面向對象的程式設計:
是一種程式設計範型,同時也是一種程式開發的方法。對象指的是類的執行個體。它将對象作為程式的基本單元,将程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充性。
了解:
面向對象更加關注的是“軟體中對象(資料和功能捆綁在一起)之間的關系”,是一種“設計者”思維,适合編寫大規模的程式。(強調于對象)
舉例:
面向對象生産汽車,關注的點是如何将各個零件組合起來,如汽車一般是由發動機、底盤、車身、電器裝置四個基本部分組成。是以一個工廠會有四個生産工廠中的房間即沖壓、焊裝、塗裝、總裝、不同工廠中的房間各自工作又互相關聯,但最後還是要将零件組裝起來。
優點:
- 面向對象程式設計将資料和操作資料相關的方式封裝到對象中,組織代碼和資料的方式更加接近人的思維,進而大大提高了程式設計的效率。
- 更好的可重用性
- 更好的可擴充性
- 更好的可管理性
缺點:
- 性能比面向過程低
總結:
面向對象可以幫我們從宏觀上把握,從整體上分析整個系統。但是具體到實作部分的圍觀操作,仍然需要面向過程的思想去處理,是以不要将面向過程和面向對象對立起來,他們是相輔相成的,面向對象離不開面向過程。簡單問題可以使用面向過程,複雜問題使用面向對象把握,使用面向過程處理。
PS:下一篇将關于面向對象的特點以及類