一開始作為乙個計算機小白時,看到這兩個專業名詞是相當mengb的。
而且一開始看大佬們的部落格也看不懂,現在用小白的立場來說說。
物件導向就是高度實物抽象化、面向過程就是自頂向下的程式設計。
假設有乙個問題,刷抖音。
可以看出,面向過程是相對嚴謹的一套操作流程。
而物件導向是相對寬廣的,每個物件都可以做出很多的改變。
面向過程與物件導向的優缺點
發現了乙個比較好的文章,寫的真是太棒了,通俗易懂,想要不明白都難!
來自( )
用面向過程的方法寫出來的程式是乙份蛋炒飯,而用物件導向寫出來的程式是乙份蓋澆飯。所謂蓋澆飯,北京叫蓋飯,東北叫燴飯,廣東叫碟頭飯,就是在一碗白公尺飯上面澆上乙份蓋菜,你喜歡什麼菜,你就澆上什麼菜。我覺得這個比喻還是比較貼切的。
蛋炒飯製作的細節,我不太清楚,因為我沒當過廚師,也不會做飯,但最後的一道工序肯定是把公尺飯和雞蛋混在一起炒勻。蓋澆飯呢,則是把公尺飯和蓋菜分別做好,你如果要乙份紅燒肉蓋飯呢,就給你澆乙份紅燒肉;如果要乙份青椒土豆蓋澆飯,就給澆乙份青椒土豆絲。
蛋炒飯的好處就是入味均勻,吃起來香。如果恰巧你不愛吃雞蛋,只愛吃青菜的話,那麼唯一的辦法就是全部倒掉,重新做乙份青菜炒飯了。蓋澆飯就沒這麼多麻煩,你只需要把上面的蓋菜撥掉,更換乙份蓋菜就可以了。蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那麼香。
到底是蛋炒飯好還是蓋澆飯好呢?其實這類問題都很難回答,非要比個上下高低的話,就必須設定乙個場景,否則只能說是各有所長。如果大家都不是美食家,沒那麼多講究,那麼從飯館角度來講的話,做蓋澆飯顯然比蛋炒飯更有優勢,他可以組合出來任意多的組合,而且不會浪費。
蓋澆飯的好處就是」菜」「飯」分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟體工程的專業術語就是」可維護性「比較好,」飯」 和」菜」的耦合度比較低。蛋炒飯將」蛋」「飯」攪和在一起,想換」蛋」「飯」中任何一種都很困難,耦合度很高,以至於」可維護性」比較差。軟體工程追求的目標之一就是可維護性,可維護性主要表現在3個方面:可理解性、可測試性和可修改性。物件導向的好處之一就是顯著的改善了軟體系統的可維護性。
看了這篇文章,簡單的總結一下!
面向過程
優點:效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源;比如微控制器、嵌入式開發、 linux/unix等一般採用面向過程開發,效能是最重要的因素。
缺點:沒有物件導向易維護、易復用、易擴充套件
物件導向
優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易於維護
面向過程與物件導向 程式設計
面向過程的程式 按照思路是下棋的流程進行程式設計,也就是我們通常習慣使用的自低向上,逐層精確的程式設計思想。這種程式設計的主導思想是在設計時就把實現的細節考慮好了,從而在低層就實現了程式滿足應用軟體要求的目的。物件導向的精髓 在於考慮問題的思路是從人的一般思維習慣出發來考慮的,這樣就改變並打破了程式...
物件導向程式設計與面向過程程式設計
面向過程程式設計 面向過程程式設計是一種以過程為中心的程式設計思想,分析出解決問題的步驟,然後用函式把這些步驟一步一步實現。面向過程程式設計,資料和對資料的操作是分離的。物件導向程式設計 物件導向程式設計是將事物物件化,通過物件通訊來解決問題。物件導向程式設計,資料和對資料的操作是繫結在一起的。物件...
面向過程程式設計與物件導向程式設計
舉個例子,比如開車 加速 減速 剎車。用面向過程來說就是你要先有乙個車,然後這四個分別是4件事,也就是說你要寫4個函式,分別是開車 加速 減速 剎車,這分別是四個事件,如果使用的話要呼叫4個函式。但是對於物件導向的程式設計來說,我們關心的是車這個類,而不是開車 加速 減速和剎車這四個過程。這4個過程...