函式學的一直都不怎麼好,對這兩個面向也總是不太理解,今天就好好的去深入了解一下到底什麼是物件導向
什麼是面向過程
面向過程三要素:封裝、繼承、類。
面向過程就是:分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。
物件導向是把:構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
定義看的總是讓人摸不著頭腦
物件導向側重於物件
面向過程側重於過程
但什麼是物件什麼是過程呢?
我從知乎上看到了幾個生動形象的例子,我覺得可以更加生動的去了解這兩者的區別~
編年體:按照年份一步一步來紀傳體:按照諸侯英雄好漢來寫
我也是這麼理解的
物件導向:重在解決問題,達到目的
面向過程:重在研究解決問題的過程
側重點不一樣
面向過程
物件導向
優點流程化使得程式設計任務明確,在開發之前基本考慮了實現方式和最終結果,具體步驟清楚,便於節點分析。
效率高,面向過程強調**的短小精悍,善於結合資料結構來開發高效率的程式。
結構清晰,程式是模組化和結構化,更加符合人類的思維方式;
易擴充套件,**重用率高,可繼承,可覆蓋,可以設計出低耦合的系統;
易維護,系統低耦合的特點有利於減少程式的後期維護工作量。
缺點需要深入的思考,耗費精力,**重用性低,擴充套件能力差,後期維護難度比較大。
開銷大,當要修改物件內部時,物件的屬性不允許外部直接訪問,所以要增加許多沒有其他意義、只負責讀或寫的行為。
這會為程式設計工作增加負擔,增加執行開銷,並且使程式顯得臃腫。
效能低,由於面向更高的邏輯抽象層,使得物件導向在實現的時候,不得不做出效能上面的犧牲,計算時間和空間儲存大小都開銷很大。
有時候不妨這麼思考一下,我們學習的程式語言是怎麼樣出現的?程式設計語存在著哪些意義?是先有了物件導向還是先有了面向過程?透過現象去看本質,再深入一點,有一種刨根問題的精神,這樣我們才能走的更遠!
面向過程
為什麼有了物件導向之後還需要物件導向呢?
類和繼承
父類和子類
強類和弱類and靜態類和動態類
參考: 程式設計的發展史
物件導向和面向過程
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...
物件導向和面向過程
物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...
物件導向和面向過程
面向過程 顧名思義,其中心意義在於 過程 二字,比如你要吃飯,那麼首先是要選地,播種,施肥,成熟,收穫,煮飯,然後才能吃飯,那麼面向過程就是從開始到結束,分析出解決問題的需要的每乙個步驟,然後用函式將這些步驟乙個乙個實現,使用的時候乙個乙個一次呼叫就行了。物件導向 同樣的,你去飯店吃飯的時候,只需要...