面向對象和面向過程的本質區(qū)別

多年來述寡,面向過程和面向對象為人所津津樂道,這個可能是程序員當中極其容易勾起的話題。而最容易談起的就是C是面向過程的語言昼钻,C++是面向對象的語言,然而我覺得這個回答有點膚淺,因為C也可面向對象抖锥,C++也可面向過程亿眠。我們所說的面向過程和面向對象應該是一種思想,不應該限制在編程語言當中。

但是相對而言拯勉,C++,Java更容易面向對象,因為他們似乎專門為面向對象而生,解決了軟件結構設計的一些難題枚碗;而C語言更容易面向過程怨规,因為它是一門系統(tǒng)語言級別的語言波丰,需要較高和較快的性能和速度。

其實很多人并沒有意識到自己是在面向對象還是在面向過程舶得,簡單來說纫骑,雖然寫了很多函數(shù)和很多個類,但是依然沒有編程思想九孩,人云亦云先馆。

首先我們來了解一下它們的概念

面向過程:是以過程為中心的編程思想。以我的理解捻撑,事物比較簡單磨隘,可以用線性的思維去解決。有個同事是做mcu固件的顾患,也就是單片機開發(fā)番捂,用的是keil編譯器,他干的就是不斷寫函數(shù)江解,單線程梭到底设预,不會用協(xié)程,多線程通信犁河。

面向對象:是一種對現(xiàn)實世界理解和抽象的方法鳖枕。以我的理解,事物比較復雜桨螺,使用簡單的線性思維也無法解決宾符。所以它有封裝,繼承灭翔,多態(tài)魏烫,抽象特征。項目程序代碼是以類為單位,方法從屬于類哄褒。

共同點:面向過程和面向對象都是解決實際問題的一種思維方式稀蟋,二者相輔相成,并不是對立的呐赡。解決復雜問題退客,通過面向對象方式便于我們從宏觀上把我事物之間復雜的關系、方便我們分析整個系統(tǒng)链嘀;具體到微觀操作萌狂,仍然使用面向過程方式來處理。

面向過程

優(yōu)點:性能比面向對象高管闷,因為類調用時需要實例化粥脚,比較消耗資源;比如Linux/Unix等一般采用面向過程開發(fā)窃肠,性能是最重要的因素;很多驅動包个,單片機mcu開發(fā),涉及到硬件圖形渲染冤留,算法封裝等碧囊,都會采用面向過程。

缺點

1.復用性較低,因為面向過程時逐步進行功能的實現(xiàn);

2.代碼維護更改性低,在面向過程編程中沒有面向對象的封裝方法,如果出問題得全局進行逐步代碼分析;

所以如果是面向過程纤怒,你采用多線程糯而,多進程,協(xié)程泊窘,這些方式通信熄驼,其實還是比較痛苦的,需要你有扎實的編碼水平和經(jīng)驗烘豹,不然一個bug可能會讓你的大廈崩塌瓜贾。

面向對象

優(yōu)點:

1.易維護,代碼可讀性好携悯,而且面向對象就是比較容易讀懂業(yè)務邏輯祭芦;

2.易復用,需要的時候new一個類憔鬼,實例化龟劲,可繼承,可封裝轴或;

3.易擴展昌跌,可多態(tài),可以自己重寫實例化這個方法照雁;

4.由于面向對象有封裝蚕愤、繼承、多態(tài)性的特性,可以設計出低耦合的系統(tǒng)审胸,使系統(tǒng)更加靈活亥宿、更加易于維護;

5.在復用時直接調用封裝好的方法即可,而且安全性相對較高,可以避免不必要的更改引起的錯誤;

6.允許一個對象的多個實例同時存在砂沛,而且彼此之間不會相互干擾烫扼;

7.安全性較高

缺點:其程序處理的效率比較低,代碼容易冗余碍庵,經(jīng)常碰到一個瓶頸后就需要重構一下映企。

而這里面需要提的是類和對象的關系。類是對象的抽象,實例是類的實現(xiàn)静浴。C++中對象和類有何聯(lián)系和區(qū)別:

它的區(qū)別就像

float pi = 3.141592654;

中的float和pi的區(qū)別一樣堰氓。

類是用戶自定義數(shù)據(jù)類型,而對象是這些類定義的具體實例或變量苹享。

什么時候面向過程双絮,什么時候面向對象

以上也簡要表達了面向過程和面向對象的場景。就我覺得得问,如果是做上層應用囤攀,做app應用開發(fā)來看,有面向對象的思想就已經(jīng)是水平相當好的程序員了宫纬。因為設計模式焚挠,很多設計思想的基礎就是類,就是面向對象的疊加漓骚。只有寫過幾十萬行代碼的人才懂面向對象帶來的舒暢蝌衔,如果你僅僅只寫過幾萬行代碼,我想即使你用了面向對象的思想蝌蹂,你也體會不到他的優(yōu)點噩斟。

凡事不可勉強,只要突破你的瓶頸后叉信,在一些必須要用面向對象去解決問題你才能獲取他的精髓亩冬,如果場景中面向對象和面向過程都能解決問題,那么我覺得你是不會體驗到他們區(qū)別的硼身。

對新手而言硅急,可能面向過程是最經(jīng)常的。即使你自豪的封裝的幾個類佳遂,那么也不要以為自己是在面向對象了营袜,其實有可能你還是在面向過程。格局打開丑罪,盡可能閱讀多的代碼荚板,去熟悉一些開源和大工程凤壁,這樣就能感覺到的宇宙的浩瀚和自己的渺小,從而提升自己的水平跪另,不斷打破上限拧抖。

兔云程序

致力于推廣編程教程,服務程序員

22篇原創(chuàng)內容

公眾號

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末免绿,一起剝皮案震驚了整個濱河市唧席,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘲驾,老刑警劉巖淌哟,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異辽故,居然都是意外死亡徒仓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門誊垢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掉弛,“玉大人,你說我怎么就攤上這事彤枢≌恚” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵缴啡,是天一觀的道長。 經(jīng)常有香客問我瓷们,道長业栅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任谬晕,我火速辦了婚禮碘裕,結果婚禮上,老公的妹妹穿的比我還像新娘攒钳。我一直安慰自己帮孔,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布不撑。 她就那樣靜靜地躺著文兢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焕檬。 梳的紋絲不亂的頭發(fā)上姆坚,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音实愚,去河邊找鬼兼呵。 笑死兔辅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的击喂。 我是一名探鬼主播维苔,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼懂昂!你這毒婦竟也來了蕉鸳?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤忍法,失蹤者是張志新(化名)和其女友劉穎潮尝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饿序,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡勉失,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了原探。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乱凿。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咽弦,靈堂內的尸體忽然破棺而出徒蟆,到底是詐尸還是另有隱情,我是刑警寧澤型型,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布段审,位于F島的核電站,受9級特大地震影響闹蒜,放射性物質發(fā)生泄漏寺枉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一绷落、第九天 我趴在偏房一處隱蔽的房頂上張望姥闪。 院中可真熱鬧,春花似錦砌烁、人聲如沸筐喳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽避归。三九已至,卻和暖如春函似,著一層夾襖步出監(jiān)牢的瞬間槐脏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工撇寞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留顿天,地道東北人堂氯。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像牌废,于是被迫代替她去往敵國和親咽白。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容