面向?qū)ο蠹夹g(shù)優(yōu)點_第1頁
面向?qū)ο蠹夹g(shù)優(yōu)點_第2頁
面向?qū)ο蠹夹g(shù)優(yōu)點_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

面向?qū)ο蠹夹g(shù)的優(yōu)點使用面向?qū)ο笏枷脒M行開發(fā)有以下優(yōu)點:1、 易維護采用面向?qū)ο笏枷朐O(shè)計的結(jié)構(gòu),可讀性高,由于繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。2、 質(zhì)量高在設(shè)計時,可重用現(xiàn)有的,在以前的項目的領(lǐng)域中已被測試過的類使系統(tǒng)滿足業(yè)務(wù)需求并具有較高的質(zhì)量。3、 效率高在軟件開發(fā)時,根據(jù)設(shè)計的需要對現(xiàn)實世界的事物進行抽象,產(chǎn)生類。使用這樣的方法解決問題,接近于日常生活和自然的思考方式,勢必提高軟件開發(fā)的效率和質(zhì)量。4、 易擴展由于繼承、封裝、多態(tài)的特性,自然設(shè)計出高內(nèi)聚、低耦合的系統(tǒng)結(jié)構(gòu),使得系統(tǒng)更靈活、更容易擴展,而且成本較低。首先,對象的引入方便了在軟件虛擬世界中模擬現(xiàn)實世界?,F(xiàn)實世界是由很多獨立的抽象或具體物體組成的,比如房子、汽車、空調(diào)、書等等。為了構(gòu)建更真實的虛擬世界,在軟件中需要存在用于表達類似現(xiàn)實物體的編程元素,這正是引入對象概念的意義所在。以對象為設(shè)計中心,迫使設(shè)計者在關(guān)注程序所需實現(xiàn)功能的同時不至于忘記通過抽象去塑造概念,以便用對象表達之。由于抽象獲得的對象有助于隱藏復(fù)雜度,這在一定程度上簡化了通過對象表達和理解軟件虛擬世界的難度。也由于對象的存在,使得設(shè)計更加的生動和具有更強的自我解釋能力。從軟件設(shè)計者的角度:如果希望塑造的對象在現(xiàn)實生活中存在,這有助于他借助現(xiàn)實引導(dǎo)自己的設(shè)計,他也應(yīng)盡量將虛擬世界中對象的行為塑造成與現(xiàn)實世界的相近;如果希望塑造的對象在現(xiàn)實生活中并不存在,他只能借助對象的行為和狀態(tài)去塑造對象(的概念),此時應(yīng)注意行為、狀態(tài)與概念間關(guān)系的合理性,否則所塑造的對象將令人費解。從軟件維護者的角度:如果對象在現(xiàn)實生活中存在,這有助于他借助生活經(jīng)驗快速掌握設(shè)計;如果在現(xiàn)實中找不到對象的影子,他仍可以通過對象的行為掌握對象的概念,這同樣有助于他更方便地維護軟件。其次,面象對象設(shè)計由于強調(diào)以對象為中心,因而具備更強的封裝能力。在大多支持面向?qū)ο笤O(shè)計的編程語言中,更強的封裝能力除了意味著更具信息隱藏能力外,還使得封裝的邊界既明顯又更不易被突破,這有助于在軟件的維護過程中維持“形”。某種程度上,面向?qū)ο笤O(shè)計強化了軟件行業(yè)推崇的模塊化設(shè)計。再次,面向?qū)ο笤O(shè)計中的繼承和多態(tài)技術(shù)除了進一步提高通過軟件模擬現(xiàn)實世界的能力外,還能讓設(shè)計更靈活、易變更和方便復(fù)用。面向?qū)ο蠖鄳B(tài):多態(tài)是類型理論的一個概念。意思是:一個名字可以代表許多不同的對象,只要這些對象都有共同的父類,這樣這個名字代表的不同對象就可以以不同的方式來響應(yīng)同一消息。多態(tài)表現(xiàn)出多種形式的能力。通用多態(tài)引用有相同結(jié)構(gòu)類型的大量對象,他們有著共同的特征。特定的多態(tài)涉及的是小部分沒有相同特征的對象。四種多態(tài)可做以下描述:強制的:一種隱式做類型轉(zhuǎn)換的方法。重載的:將一個標(biāo)志符用作多個意義。參數(shù)的:為不同類型的參數(shù)提供相同的操作。包含的:類包含關(guān)系的抽象操作。多態(tài)性的優(yōu)點示例:如下面的java語句:publicabstractclassAnimal{publicabstractvoidcry();publicabstractStringgetAnimalName();}publicclassSimulator{publicvoidplaySound(Animalanimal){System.out.println(〃我是〃+animal.getAnimalName());System.out.println("-我的叫聲是:");animal.cry();}}publicclassDogextendsAnimal{publicvoidcry(){System.out.println(〃汪、汪、汪〃);}publicStringgetAnimalName(){return〃小狗〃; }}publicclassCatextendsAnimal{publicvoidcry(){System.out.println(〃喵、喵、喵〃);}publicStringgetAnimalName(){return〃小貓〃; }}publicclassTest{publicstaticvoidmain(String[]args){Simulatorsimulator=newSimulator();simulator.playSound(newDog());simulator.playSound(newCat());}}在上面的示例程序中,對于定義的Animal類,分別有兩個子類繼承了父類的基本特性,好處非常明顯:可替換性。對已存在的代碼具有可替換性??蓴U充性。對代碼具有可擴充性。增加新的子類不影響已存在類的多態(tài)性、繼承性,以及其他特性的運行和操作。實際上新加子類更容易獲得多態(tài)功能。靈活性。它在應(yīng)用中體現(xiàn)了靈活多樣的操作,提高了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論