面向對象與面向過程的區別

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

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

1、按步驟來看:

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

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

以上兩種完全不同的設計思路,正好對應于編程中完全不同的兩種思想:前者側重于游戲步驟的設計,對應于編程中的面向過程思想;后者著重于分層,有模塊化設計理念,對應于編程中的面向對象思想。可以很明顯地看出:面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了多個步驟中,很可能出現不同的繪制版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。

C語言是典型的“面向過程”設計語言。面向過程就是分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。“面向過程”是一種以過程為中心的編程思想。“面向過程”也可稱之為“面向記錄”編程思想,它們不支持豐富的“面向對象”特性(比如繼承、多態)。如下圖:


1533339-20190314222216655-1664246684.png

  Java是典型的“面向對象”設計語言。“面向對象”是一種以事物為中心的編程思想。是把構成問題的事物分解成各個對象,建立對象的目的不是為了完成某一個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。如下圖:


1533339-20190314222327434-1488483357.png

面向過程適合于一個人的小量工作,而面向對象更側重于團隊合作,需要很多人完成的大量工作。面向過程思想是我們每一個人天生具備的。在編程時,我們總會不自覺的去考慮怎么來完成某一需求,分析出具體的步驟,然后按照步驟來一步步實現。但是在現實生活當中,并不是每一件事都可以自己獨立來完成,我們需要團隊,需要合作才可以完成某一項復雜的工作。這樣來看的話,面向對象思想似乎更符合人們的做事方式,也更生活化。是的呢,不管是生活中,亦或是編程中,面向對象才是我們更應該具備的一種思想,先來看幾組概念。

對象:對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看做對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件等。
  類:具有相同特性(數據元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例化是對象,類實際上就是一種數據類型。
  面向對象三大特征:封裝、繼承、多態。

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

面向過程
  優點:性能比面向對象高。
  缺點:沒有面向對象易維護、易復用、易擴展。
  面向對象
  優點:易維護、易復用、易擴展。由于面向對象有封裝、繼承、多態性的特征,可以設計出低耦合的系統,使系統更加靈活,更加易于維護和擴展。
  缺點:性能比面向過程低。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容