3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
面向過程和面向對象都是對軟體分析、設計和開發的一種思想它指導著人們以不同的方式去分析、設計和開發軟體。早期先有面向過程思想,隨著軟體規模的擴大,問題複雜性的提高,面向過程的弊端越來越明顯的顯示出來,出現了面向對象思想並成為目前主流的方式。兩者都貫穿於軟體分析、設計和開發各個階段,對應面向對象就分別稱為面向對象分析(OOA)、面向對象設計(OOD)和面向對象編程(OOP)。C語言是一種典型的面向過程語言,Java是一種典型的面向對象語言。面向過程思想思考問題時,我們首先思考「怎麼按步驟實現?」並將步驟對應成方法,一步一步,最終完成。 這個適合簡單任務,不需要過多協作的情況下。比如,如何開車?我們很容易就列出實現步驟:1. 發動車 2. 掛擋 3.踩油門 4. 走你面向過程適合簡單、不需要協作的事務。 但是當我們思考比較複雜的問題,比如「如何造車?」,就會發現列出1234這樣的步驟,是不可能的。那是因為,造車太複雜,需要很多協作才能完成。此時面向對象思想就應運而生了。面向對象(Object)思想更契合人的思維模式。我們首先思考的是「怎麼設計這個事物?」 比如思考造車,我們就會先思考「車怎麼設計?」,而不是「怎麼按步驟造車的問題」。這就是思維方式的轉變。一、面向對象思想思考造車,發現車由如下對象組成:1. 輪胎2. 發動機3. 車殼4. 座椅5. 擋風玻璃為了便於協作,我們找輪胎廠完成製造輪胎的步驟,發動機廠完成製造發動機的步驟;這樣,發現大家可以同時進行車的製造,最終進行組裝,大大提高了效率。但是,具體到輪胎廠的一個流水線操作,仍然是有步驟的,還是離不開面向過程思想!因此,面向對象可以幫助我們從宏觀上把握、從整體上分析整個系統。 但是,具體到實現部分的微觀操作(就是一個個方法),仍然需要面向過程的思路去處理。我們千萬不要把面向過程和面向對象對立起來。他們是相輔相成的。面向對象離不開面向過程!·面向對象和面向過程的總結二、都是解決問題的思維方式,都是代碼組織的方式。三、解決簡單問題可以使用面向過程四、解決複雜問題:宏觀上使用面向對象把握,微觀處理上仍然是面向過程。· 面向對象思考方式遇到複雜問題,先從問題中找名詞,然後確立這些名詞哪些可以作為類,再根據問題需求確定的類的屬性和方法,確定類之間的關係。建議1.面向對象具有三大特徵:封裝性、繼承性和多態性,而面向過程沒有繼承性和多態性,並且面向過程的封裝只是封裝功能,而面向對象可以封裝數據和功能。所以面向對象優勢更明顯。2.一個經典的比喻:面向對象是蓋澆飯、面向過程是蛋炒飯。蓋澆飯的好處就是「菜」「飯」分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟體工程的專業術語就是「可維護性」比較好,「飯」 和「菜」的耦合度比較低。

本文由yidianzixun提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦