面向?qū)ο笈c面向過程程序設(shè)計方法的比較

面向?qū)ο笈c面向過程程序設(shè)計方法的比較

ID:34478773

大小:419.98 KB

頁數(shù):5頁

時間:2019-03-06

面向?qū)ο笈c面向過程程序設(shè)計方法的比較_第1頁
面向?qū)ο笈c面向過程程序設(shè)計方法的比較_第2頁
面向?qū)ο笈c面向過程程序設(shè)計方法的比較_第3頁
面向?qū)ο笈c面向過程程序設(shè)計方法的比較_第4頁
面向?qū)ο笈c面向過程程序設(shè)計方法的比較_第5頁
資源描述:

《面向?qū)ο笈c面向過程程序設(shè)計方法的比較》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、面向?qū)ο笈c面向過程程序設(shè)計方法的比較摘要:區(qū)別于一般講述面向?qū)ο蠹夹g(shù)的文章,本文系統(tǒng)地比較了面向?qū)ο蠹夹g(shù)和面向過程技術(shù)的異同,并著重介紹面向?qū)ο蠹夹g(shù)以及它的封裝、繼承和多態(tài)三個特點(diǎn),讓讀者對面向?qū)ο笥幸粋€形象的理解。然后通過比較和舉例,文章分析了OO技術(shù)在軟件工程中的三大優(yōu)勢。Abstract:Beingdifferentfromgeneralarticlesaboutobject-orientedtechnology,thispapersystematicallycomparedtheobject-orie

2、ntedtechnologyandtheprocess-orientedtechnology,andmainlyintroducestheobject-orientedtechnologyanditsthreecharacteristics:packaging,inheritanceandpolymorphism,tomakethereaderhaveanimageofunderstandingofobject-oriented.Thenthroughthecomparisonandsomeexamples,

3、thispaperanalyzestheOObasedsoftwareengineeringinthreepoints.關(guān)鍵字:面向?qū)ο竺嫦蜻^程軟件工程Keywords:Object-OrientedProcess-OrientedSoftware-Engineering一引言20世紀(jì)60年代中期開始爆發(fā)的軟件危機(jī),使人們認(rèn)識到大中型軟件系統(tǒng)與小型軟件系統(tǒng)的本質(zhì)區(qū)別,軟件工程以及面向?qū)ο缶幊蹋∣bject-OrientedProgramming)技術(shù)得以應(yīng)運(yùn)而生。從最初的SIMULA到如今的C++、JAVA和

4、C#,面向?qū)ο蟪绦蛟O(shè)計語言已發(fā)展為當(dāng)前最流行的程序設(shè)計語言。談到面向?qū)ο?,一個不能回避的問題是面向過程的程序設(shè)計思想。作為一種常用的面向?qū)ο笳Z言,C++自C語言發(fā)展而來,是一種混合型面向?qū)ο蟮某绦蛟O(shè)計語言,它既支持面向?qū)ο笥种С置嫦蜻^程。面向?qū)ο笈c面向過程雖然在設(shè)計理念上截然相反,前者是自底向上而后者是自頂向下的,但它倆仍有眾多的相似之處。只有建立在深入理解二者的關(guān)系的基礎(chǔ)上,我們才算是真正駕馭了面向?qū)ο笈c面向過程技術(shù),以便在未來將它們熟練地運(yùn)用于學(xué)習(xí)和生活中。二面向過程的程序設(shè)計方法著名的計算機(jī)科學(xué)家Nik

5、iklausWirth提出了一個公式:程序=算法+數(shù)據(jù)結(jié)構(gòu)。這個公式很好地詮釋了面向過程程序設(shè)計方法的核心思想——算法和數(shù)據(jù)。更加具體地說,面向過程的程序設(shè)計方法稱為功能分解,即自頂向下。以兩個人下五子棋為例,面向過程的設(shè)計方法是先決定二人中誰先手,然后是先手者下一子,判斷游戲是否結(jié)實(shí),后手者下一子,判斷游戲是否結(jié)束??可以看到無論是猜先、落子還是最后的判勝負(fù),它們都是一場五子棋游戲中不能再分割的邏輯單位。程序員的工作是將這些最底層的功能進(jìn)行編碼并測試,然后將這些功能自底向上裝配在一起,直到得到一個完整功能的

6、應(yīng)用程序。在這種體系中,我們的著眼點(diǎn)是一個個最基本的功能,數(shù)據(jù)是為了實(shí)現(xiàn)這些功能而設(shè)計的,它是后于功能的。當(dāng)問題的規(guī)模不大時,面向過程的設(shè)計方法因其邏輯關(guān)系明確,實(shí)現(xiàn)簡單而備受程序員們的青睞。但是當(dāng)問題規(guī)模擴(kuò)大到大中型軟件時,一個項目的代碼量不是一個人可以單獨(dú)完成的。小組的分工與合作成為解決代碼量大的方法,但是這又向程序員之間的配合提出了新的挑戰(zhàn),同時數(shù)據(jù)共用導(dǎo)致的不安全、代碼重用率低等問題也阻礙著面向過程的方法在大型軟件工程中的發(fā)展。這便是前文中提到的軟件危機(jī)。三面向?qū)ο蟮某绦蛟O(shè)計方法區(qū)別與面向過程的“先功

7、能后數(shù)據(jù)”思想,面向?qū)ο蟮某绦蛟O(shè)計方法把狀態(tài)(數(shù)據(jù))和行為(功能)捆綁在一起,形成了對象。當(dāng)遇到一個具體的問題時,我們只需要將一個系統(tǒng)分解成一個個的對象,同時將狀態(tài)和行為封裝在對象中。此時我們回過頭再考慮五子棋游戲,作為一個系統(tǒng),它可以被我們分解成若干對象,一種思路是分成棋盤、棋子和玩家三類?;蛟S在這個簡單的例子中,OO的優(yōu)勢并不明顯,但是在一些大型的系統(tǒng)中,第二種解題思路會清晰得多。人們總結(jié)了面向?qū)ο蟮娜齻€基本特點(diǎn):封裝、繼承和多態(tài)。1封裝封裝是一個用來指代將對象的狀態(tài)和行為捆綁到一個單一邏輯單元的機(jī)制的正

8、式術(shù)語。它不是面向?qū)ο笳Z言所特有的,面向過程的C語言用結(jié)構(gòu)封裝了數(shù)據(jù),函數(shù)封裝了邏輯。但是面向?qū)ο蠓庋b了兩者,從這種意義上來說,面向?qū)ο蟮姆庋b更加完美。出于一些安全性與方便性的考慮,對象經(jīng)常會限制對它們特征(包括屬性和方法)的訪問,這種限制稱為信息隱藏。作為對象的抽象,類通常只公開對象可以公開的東西,主要是一個特定對象對系統(tǒng)的服務(wù),而隱藏執(zhí)行服務(wù)的內(nèi)部細(xì)節(jié)和為了完成這些服務(wù)而設(shè)計的數(shù)據(jù)。注意這不是說

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。