面向?qū)ο笈c面向過程的區(qū)別

先來看生活中的一個例子。

想必每個人都下過五子棋吧?在下棋的整個過程中可以有兩種不同的思路來實現(xiàn):

1、按步驟來看:

(1)、開始游戲,(2)、黑子先走,(3)、繪制畫面,(4)、判斷輸贏,(5)、輪到白子,(6)、繪制畫面,(7)、判斷輸贏,(8)、返回步驟(2),(9)輸出最后結(jié)果

2、按組成模塊來看:
  (1)、黑白雙方模塊,(2)、棋盤模塊,(3)、規(guī)則模塊

以上兩種完全不同的設計思路,正好對應于編程中完全不同的兩種思想:前者側(cè)重于游戲步驟的設計,對應于編程中的面向過程思想;后者著重于分層,有模塊化設計理念,對應于編程中的面向?qū)ο笏枷搿?梢院苊黠@地看出:面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了多個步驟中,很可能出現(xiàn)不同的繪制版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向?qū)ο蟮脑O計中,繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。

C語言是典型的“面向過程”設計語言。面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了?!懊嫦蜻^程”是一種以過程為中心的編程思想?!懊嫦蜻^程”也可稱之為“面向記錄”編程思想,它們不支持豐富的“面向?qū)ο蟆碧匦裕ū热缋^承、多態(tài))。如下圖:


1533339-20190314222216655-1664246684.png

  Java是典型的“面向?qū)ο蟆痹O計語言?!懊嫦?qū)ο蟆笔且环N以事物為中心的編程思想。是把構(gòu)成問題的事物分解成各個對象,建立對象的目的不是為了完成某一個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。如下圖:


1533339-20190314222327434-1488483357.png

面向過程適合于一個人的小量工作,而面向?qū)ο蟾鼈?cè)重于團隊合作,需要很多人完成的大量工作。面向過程思想是我們每一個人天生具備的。在編程時,我們總會不自覺的去考慮怎么來完成某一需求,分析出具體的步驟,然后按照步驟來一步步實現(xiàn)。但是在現(xiàn)實生活當中,并不是每一件事都可以自己獨立來完成,我們需要團隊,需要合作才可以完成某一項復雜的工作。這樣來看的話,面向?qū)ο笏枷胨坪醺先藗兊淖鍪路绞剑哺罨?。是的呢,不管是生活中,亦或是編程中,面向?qū)ο蟛攀俏覀兏鼞摼邆涞囊环N思想,先來看幾組概念。

對象:對象是人們要進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看做對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件等。
  類:具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例化是對象,類實際上就是一種數(shù)據(jù)類型。
  面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài)。

封裝:封裝是一種把代碼和代碼所操作的數(shù)據(jù)捆綁在一起,使這兩者不受外界干擾和誤用的機制。封裝可被理解為一種用作保護的包裝器,以防止代碼和數(shù)據(jù)被包裝器外部所定義的其它代碼任意訪問。
  繼承:繼承是指一個對象從另一個對象中獲得屬性和方法的過程。它支持按層次分類的概念,如果不使用層次的概念,每個對象需要明確定義各自的全部特征,通過層次分類方式,一個對象只需要在它的類中定義使它成為唯一的各個屬性和方法。
  多態(tài):多態(tài)是指同一個實體同時具有多種形式。同一操作作用于不用的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在運行時,可以通過指向基類的引用,來調(diào)用實現(xiàn)派生類中的方法。

面向過程
  優(yōu)點:性能比面向?qū)ο蟾摺?br>   缺點:沒有面向?qū)ο笠拙S護、易復用、易擴展。
  面向?qū)ο?br>   優(yōu)點:易維護、易復用、易擴展。由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特征,可以設計出低耦合的系統(tǒng),使系統(tǒng)更加靈活,更加易于維護和擴展。
  缺點:性能比面向過程低。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容