面向?qū)ο蠛兔嫦驅(qū)ο筮^程的區(qū)別

面向?qū)ο蠛兔嫦蜻^程的區(qū)別,實(shí)在是難用一兩句話說明白。
面向過程是一種直接的編程方法番挺,它是按照編程語言的思路考慮問題挠锥。尤其是想C語言這種過程式語言晶密,它就是通過順序執(zhí)行一組語句來實(shí)現(xiàn)一個(gè)功能部蛇,這些語句的執(zhí)行過程就是整個(gè)程序肺缕。不同的語言解決同一個(gè)問題的過程是不一樣的邑时。
面向?qū)ο笫且环N抽象度更高的編程方法奴紧。它把眼光集中在了要解決問題本身而不是語言上。它的目標(biāo)是使模塊的抽象度更高晶丘,可復(fù)用性更好黍氮。面向?qū)ο蟮哪康木褪强蓮?fù)用。
舉個(gè)例子浅浮,比如我們要寫一個(gè)計(jì)算器程序沫浆。這個(gè)計(jì)算機(jī)目前只要求有加減乘除四種運(yùn)算。
用面向過程的方法滚秩,我們可能直接就寫一個(gè)main函數(shù)专执。然后就開始定義一些數(shù)據(jù)結(jié)構(gòu),然后就開始寫add郁油,sub本股,multi攀痊,div等函數(shù),去實(shí)現(xiàn)功能拄显。
用面向?qū)ο蟮姆椒ü毒叮覀儠?huì)先定義一個(gè)Calculator類。然后定義一些必要的數(shù)據(jù)成員躬审,然后在定義add棘街,sub,multi盒件,div這四個(gè)成員函數(shù)(這四個(gè)函數(shù)的功能實(shí)現(xiàn)和上面四個(gè)應(yīng)該是基本一樣的)蹬碧。
從上面的實(shí)現(xiàn)來看,這兩種實(shí)現(xiàn)方法的差別不是很大炒刁,甚至第二種看上去還有些多此一舉恩沽。
接下來,我們要擴(kuò)展這個(gè)計(jì)算器翔始,讓它能計(jì)算指數(shù)罗心。
用面向過程的方法,我們會(huì)將上面實(shí)現(xiàn)的代碼全部copy過來城瞎,然后再增加一個(gè)power函數(shù)渤闷。
用面向?qū)ο蟮姆椒ǎ覀儠?huì)定義一個(gè)CalculatorEx類公有繼承自Calculator脖镀,再在CalculatorEx中實(shí)現(xiàn)Power函數(shù)飒箭。
上面只是一個(gè)簡單的擴(kuò)展,二者的區(qū)別就明顯起來蜒灰。面向過程是純代碼級(jí)的復(fù)用弦蹂。面向?qū)ο蟮膹?fù)用方式更為優(yōu)雅,它可以是代碼級(jí)的强窖,也可以是類級(jí)的凸椿,也可以是接口級(jí)的,也可以是組件級(jí)的翅溺,甚至是服務(wù)級(jí)的脑漫。拋下這些復(fù)用概念不說。我們假設(shè)第一次實(shí)現(xiàn)的并不是簡單的四個(gè)功能咙崎,而是一個(gè)復(fù)雜的庫优幸,第二次增加的也不是一個(gè)功能而是一個(gè)擴(kuò)展庫。這時(shí)候面向?qū)ο蟮膬?yōu)勢(shì)就會(huì)比較明顯的體現(xiàn)出來褪猛。面向過程是松散部件网杆,而面向?qū)ο笫且粋€(gè)體系。
我說的這些都是自己的理解,可能并不完全正確跛璧。對(duì)于面向?qū)ο笥幸粋€(gè)官方的定義严里,但是不同人有不同的理解。所以里面的很多東西都需要在學(xué)習(xí)的過程中去理解體會(huì)追城。但是刹碾,如果不動(dòng)手做點(diǎn)東西,對(duì)這些概念很難理解到位座柱。
還有就是迷帜,C,C++色洞,Java這些都是語言戏锹,他們之間并沒有是不是面向?qū)ο蟮膮^(qū)別。用C同樣可以寫面向?qū)ο蟮某绦蚧鹬睿纯碙inux的內(nèi)核代碼就知道了锦针。C++,Java一樣可以寫面向過程的程序置蜀,他們之所以叫面向?qū)ο蟮木幊陶Z言是因?yàn)樗麄兲峁┑恼Z言特性更易于實(shí)現(xiàn)面向?qū)ο蟮木幊谭椒嗡眩⒉皇钦f他們只能做面向?qū)ο缶幊獭?/div>
還有就是并不是說面向?qū)ο笠欢▋?yōu)于面向過程。在很多領(lǐng)域是無法實(shí)施面向?qū)ο蟮姆椒ǘ⒒纾缬布幊毯颓度胧骄幊踢@種實(shí)時(shí)性和效率要求高的領(lǐng)域就無法用到面向?qū)ο蟛雎稹C嫦驅(qū)ο蟮闹饕I(lǐng)域還是用在大型,復(fù)雜型的軟件系統(tǒng)中秋秤。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宏粤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灼卢,更是在濱河造成了極大的恐慌绍哎,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芥玉,死亡現(xiàn)場(chǎng)離奇詭異蛇摸,居然都是意外死亡备图,警方通過查閱死者的電腦和手機(jī)灿巧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揽涮,“玉大人抠藕,你說我怎么就攤上這事〗В” “怎么了盾似?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我零院,道長溉跃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任告抄,我火速辦了婚禮撰茎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘打洼。我一直安慰自己龄糊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布募疮。 她就那樣靜靜地躺著炫惩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阿浓。 梳的紋絲不亂的頭發(fā)上他嚷,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音芭毙,去河邊找鬼爸舒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛稿蹲,可吹牛的內(nèi)容都是我干的扭勉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼苛聘,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼涂炎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起设哗,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤唱捣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后网梢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體震缭,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年战虏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拣宰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烦感,死狀恐怖巡社,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情手趣,我是刑警寧澤晌该,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響朝群,放射性物質(zhì)發(fā)生泄漏燕耿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一姜胖、第九天 我趴在偏房一處隱蔽的房頂上張望缸棵。 院中可真熱鬧,春花似錦谭期、人聲如沸堵第。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踏志。三九已至,卻和暖如春胀瞪,著一層夾襖步出監(jiān)牢的瞬間针余,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工凄诞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留圆雁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓帆谍,卻偏偏與公主長得像伪朽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汛蝙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容