面向對象編程開發是隨著互聯網的不斷發展而逐漸被程序員所掌握的編程方式,下面我們就通過案例分析來了解一下,面向對象編程基礎知識分享。
面向過程的程序設計:核心是過程二字,過程指的是解決問題的步驟,即先干什么再干什么......面向過程的設計就好比精心設計好一條流水線,是一種機械式的思維方式。
優點是:復雜度的問題流程化,進而簡單化(一個復雜的問題,分成一個個小的步驟去實現,實現小的步驟將會非常簡單)
缺點是:一套流水線或者流程就是用來解決一個問題,生產汽水的流水線無法生產汽車,即便是能,也得是大改,改一個組件,牽一發而動全身。
應用場景:一旦完成基本很少改變的場景,著名的例子有Linux內核,git,以及ApacheHTTPServer等。
面向對象的程序設計:核心是對象二字。
要理解對象為何物,必須把自己當成上帝,上帝眼里世間存在的萬物皆為對象,不存在的也可以創造出來。面向對象的程序設計好比如來設計西游記,如來要解決的問題是把經書傳給東土大唐,如來想了想解決這個問題需要四個人:唐僧,沙和尚,豬八戒,孫悟空,每個人有各自的特征和技能(這就是對象的概念,特征和技能分別對應對象的數據屬性和方法屬性),然而這并不好玩,于是如來又安排了一群妖魔鬼怪,為了防止師徒四人在取經路上被搞死,又安排了一群神仙保駕護航,這些是對象。然后取經開始,師徒四人與妖魔鬼怪神仙交互著直到后取得真經。如來根本不會管師徒四人按照什么流程去取。
對象是特征與技能的結合體
基于面向對象設計程序就好比在創造一個世界,你就是這個世界的上帝,存在的皆為對象,不存在的也可以創造出來,與面向過程機械式的思維方式形成鮮明對比,面向對象更加注重對現實世界的模擬,是一種“上帝式”的思維方式。
優點是:解決了程序的擴展性。對某一個對象單獨修改,會立刻反映到整個體系中,如對游戲中一個人物參數的特征和技能修改很容易。
缺點:
1.編程的復雜度遠高于面向過程,不了解面向對象而立即上手基于它設計程序,極容易出現過度設計的問題。一些擴展性要求低的場景使用面向對象會徒增編程難度,比如管理linux系統的shell腳本就不適合用面向對象去設計,面向過程反而更加適合。
2.無法向面向過程的程序設計流水線式的可以很精準的預測問題的處理流程與結果,面向對象的程序一旦開始就由對象之間的交互解決問題,即便是上帝也無法準確地預測終結果。于是我們經常看到對戰類游戲,新增一個游戲人物,在對戰的過程中可能會出現bug的技能,一刀砍死3個人,這種情況是無法準確預知的,只有對象之間交互才能準確地知道終的結果。
應用場景:需求經常變化的軟件,一般需求的變化集中在用戶層,互聯網應用,企業內部軟件,游戲等是面向對象的程序設計大顯身手的好地方
面向對象的程序設計并不是全部。對于一個軟件質量來說,面向對象的程序設計只是用來解決擴展性
手機瀏覽
全國
19974831731


