第7章面向?qū)ο筌浖O(shè)計與實現(xiàn)_第1頁
第7章面向?qū)ο筌浖O(shè)計與實現(xiàn)_第2頁
第7章面向?qū)ο筌浖O(shè)計與實現(xiàn)_第3頁
第7章面向?qū)ο筌浖O(shè)計與實現(xiàn)_第4頁
第7章面向?qū)ο筌浖O(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第7章 面向?qū)ο筌浖O(shè)計與實現(xiàn)7.1 面向?qū)ο蠓治?.1.1 面向?qū)ο蠓治鲞^程面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行 尋找類與對象,識別結(jié)構(gòu),識別主題,定義屬性,建立動態(tài)模型,建立功能模型,定義服務(wù) 7.1.2 面向?qū)ο蠓治鲈瓌t定義有實際意義的對象模型的描述要規(guī)范、準(zhǔn)確 共享性封裝性7.2 建立對象模型7.2.1 確定類與對象1.找出候選的類與對象對象是對問題域中有意義的事物的抽象,它們既可能是物理實體,也可能是抽象概念 大多數(shù)客觀事物可分為下述5類 可感知的物理實體人或組織的角色 應(yīng)該記憶的事件 兩個或多個對象的相互作用,通常具有交易或接觸的性質(zhì)需要說明的概念 7.2 建立對象模型2.篩選出正確

2、的類與對象篩選時主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類與對象冗余無關(guān)籠統(tǒng)屬性操作實現(xiàn)7.2 建立對象模型7.2.2 確定關(guān)聯(lián)兩個或多個對象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián),分析確定關(guān)聯(lián),能促使分析員考慮問題域的邊緣情況,有助于發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類與對象 確定關(guān)聯(lián)有以下步驟初步確定關(guān)聯(lián)需求陳述中使用的描述性動詞或動詞詞組,通常表示關(guān)聯(lián)關(guān)系 通過分析需求陳述,還能發(fā)現(xiàn)一些在陳述中隱含的關(guān)聯(lián) 分析員還應(yīng)該與用戶及領(lǐng)域?qū)<矣懻搯栴}域?qū)嶓w間的相互依賴、相互作用關(guān)系,根據(jù)領(lǐng)域知識再進(jìn)一步補(bǔ)充一些關(guān)聯(lián) 7.2 建立對象模型篩選篩選時主要根據(jù)下述標(biāo)準(zhǔn)刪除候選的關(guān)聯(lián) 已刪去的類之間的關(guān)聯(lián) 與問題無關(guān)的

3、或應(yīng)在實現(xiàn)階段考慮的關(guān)聯(lián) 瞬時事件三元關(guān)聯(lián)派生關(guān)聯(lián)應(yīng)該去掉那些可以用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián) 7.2 建立對象模型進(jìn)一步完善通常從下述方面進(jìn)行改進(jìn)正名分解補(bǔ)充發(fā)現(xiàn)了遺漏的關(guān)聯(lián)就應(yīng)該及時補(bǔ)上 標(biāo)明重數(shù)7.2 建立對象模型7.2.3 劃分主題在開發(fā)大型、復(fù)雜系統(tǒng)的過程中,為了降低復(fù)雜程度,人們習(xí)慣于把系統(tǒng)再進(jìn)一步劃分成幾個不同的主題應(yīng)該按問題領(lǐng)域而不是用功能分解方法來確定主題 應(yīng)該按照使不同主題內(nèi)的對象相互間依賴和交互最少的原則來確定主題 7.2 建立對象模型7.2.4 確定屬性確定屬性的過程包括分析和選擇兩個步驟 分析通常,在需求陳述中用名詞詞組表示屬性往往用形容詞表示可枚舉的具體屬性 分析員還必

4、須借助于領(lǐng)域知識和常識才能分析得出需要的屬性應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性 應(yīng)該首先找出最重要的屬性分析階段不要考慮那些純粹用于實現(xiàn)的屬性 7.2 建立對象模型選擇通常有以下幾種常見情況誤把對象當(dāng)作屬性誤把關(guān)聯(lián)類的屬性當(dāng)作一般對象的屬性 把限定誤當(dāng)成屬性 誤把內(nèi)部狀態(tài)當(dāng)成了屬性過于細(xì)化在分析階段應(yīng)該忽略那些對大多數(shù)操作都沒有影響的屬性 存在不一致的屬性 7.2 建立對象模型7.2.5 識別繼承關(guān)系一般說來,可以使用兩種方式建立繼承(即泛化)關(guān)系 自底向上:抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個過程實質(zhì)上模擬了人類歸納思維過程 自頂向下:把現(xiàn)有類細(xì)化成更具體的子類,這模擬了人類的演繹思維過程

5、 7.2 建立對象模型7.2.6 反復(fù)修改僅僅經(jīng)過一次建模過程很難得到完全正確的對象模型,軟件開發(fā)過程就是一個多次反復(fù)修改、逐步完善的過程 在建模的任何一個步驟中,如果發(fā)現(xiàn)了模型的缺陷,都必須返回到前期階段進(jìn)行修改 7.3 建立動態(tài)模型建立動態(tài)模型的步驟:編寫典型交互行為的腳本從腳本中提取出事件,確定觸發(fā)每個事件的動作對象以及接受事件的目標(biāo)對象排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們 比較各個對象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配 7.3 建立動態(tài)模型7.3.1 編寫腳本腳本是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件編寫腳本的目的,是保證

6、不遺漏重要的交互步驟,它有助于確保整個交互過程的正確性和清晰性腳本描寫的范圍并不是固定的,主要由編寫腳本的具體目的決定 編寫腳本的過程,實質(zhì)上就是分析用戶對系統(tǒng)交互行為的要求的過程 編寫腳本時,首先編寫正常情況的腳本。然后,考慮特殊情況。最后,考慮出錯情況 腳本描述事件序列,對于每個事件,都應(yīng)該指明觸發(fā)該事件的動作對象、接受事件的目標(biāo)對象以及該事件的參數(shù) 7.3 建立動態(tài)模型7.3.2 設(shè)想用戶界面大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面兩部分,應(yīng)用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,用戶界面是外在的表現(xiàn)形式 用戶界面的美觀程度、方便程度、易學(xué)程度以及效率等,是用戶使用系統(tǒng)時最先感受到的 用戶對系統(tǒng)的

7、“第一印象”往往從界面得來,用戶界面的好壞往往對用戶是否喜歡、是否接受一個系統(tǒng)起很重要的作用 在分析階段用戶界面的細(xì)節(jié)并不太重要,重要的是在這種界面下的信息交換方式 7.3 建立動態(tài)模型7.3.3 畫事件跟蹤圖用自然語言書寫的腳本往往不夠簡明,而且有時在閱讀時會有二義性。為了有助于建立動態(tài)模型,通常在畫狀態(tài)圖之前先畫出事件跟蹤圖 確定事件仔細(xì)分析每個腳本,以便從中提取出所有外部事件 事件包括系統(tǒng)與用戶交互的所有信號、輸入、輸出、中斷、動作等,傳遞信息的對象的動作也是事件 應(yīng)該把對控制流產(chǎn)生相同效果的那些事件組合在一起作為一類事件,并給它們?nèi)∫粋€唯一的名字 應(yīng)該區(qū)分出每類事件的發(fā)送對象和接受對象

8、 7.3 建立動態(tài)模型畫出事件跟蹤圖一條豎線代表一個對象,每個事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā)送對象指向接受對象 時間從上向下遞增 箭頭線之間的間距并沒有具體含義,圖中僅用箭頭線在垂直方向上的相對位置表示事件發(fā)生的先后,并不表示兩個事件之間的精確時間差 7.3 建立動態(tài)模型7.3.4 畫狀態(tài)圖狀態(tài)圖描繪事件與對象狀態(tài)的關(guān)系。當(dāng)對象接受了一個事件以后,它的下一個狀態(tài)取決于當(dāng)前狀態(tài)及所接受的事件。由事件引起的狀態(tài)改變稱為“轉(zhuǎn)換”。如果一個事件并不引起當(dāng)前狀態(tài)發(fā)生轉(zhuǎn)換,則可忽略這個事件。通常,用一張狀態(tài)圖描繪一類對象的行為,它確定了由事件序列引出的狀態(tài)序列。但是,也不是任何一個類都需要

9、有一張狀態(tài)圖描繪它的行為。很多對象僅響應(yīng)與過去歷史無關(guān)的那些輸入事件,或者把歷史作為不影響控制流的參數(shù)。對于這類對象來說,狀態(tài)圖是不必要的。系統(tǒng)分析員應(yīng)該集中精力僅考慮具有重要交互行為的那些類。7.3 建立動態(tài)模型7.3.4 畫狀態(tài)圖根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本的事件跟蹤圖合并到已畫出的狀態(tài)圖中。為此需在事件跟蹤圖中找出以前考慮過的腳本的分支點(diǎn)(例如“驗證賬戶”就是一個分支點(diǎn),因為驗證的結(jié)果可能是“賬戶有效”,也可能是“無效賬戶”),然后把其他腳本中的事件序列并入已有的狀態(tài)圖中,作為一條可選的路徑。考慮完正常事件之后再考慮邊界情況和特殊情況,其中包括在不適當(dāng)時候發(fā)生的事件(如

10、系統(tǒng)正在處理某個事務(wù)時,用戶要求取消該事務(wù))。有時用戶(或外部設(shè)備)不能做出快速響應(yīng),然而某些資源又必須及時收回,于是在一定間隔后就產(chǎn)生了“超時”事件。對用戶出錯情況往往需要花費(fèi)很多精力處理,并且會使原來清晰、緊湊的程序結(jié)構(gòu)變得復(fù)雜、煩瑣,但是,出錯處理是不能省略的。當(dāng)狀態(tài)圖覆蓋了所有腳本,包含了影響某類對象狀態(tài)的全部事件時,該類的狀態(tài)圖就構(gòu)造出來了。利用這張狀態(tài)圖可能會發(fā)現(xiàn)一些遺漏的情況。測試完整性和出錯處理能力的最好方法,是設(shè)想各種可能出現(xiàn)的情況,多問幾個“如果,則”的問題。7.3 建立動態(tài)模型7.3.5 審查動態(tài)模型各個類的狀態(tài)圖通過共享事件合并起來,構(gòu)成了系統(tǒng)的動態(tài)模型。在完成了每個具

11、有重要交互行為的類的狀態(tài)圖之后,應(yīng)該檢查系統(tǒng)級的完整性和一致性。一般來說,每個事件都應(yīng)該既有發(fā)送對象又有接受對象。當(dāng)然,有時發(fā)送者和接受者是同一個對象。對于沒有前驅(qū)或沒有后繼的狀態(tài)應(yīng)該著重審查,如果這個狀態(tài)既不是交互序列的起點(diǎn)也不是終點(diǎn),則發(fā)現(xiàn)了一個錯誤。應(yīng)該審查每個事件,跟蹤它對系統(tǒng)中各個對象所產(chǎn)生的效果,以保證它們與每個腳本都匹配。7.4 建立功能模型功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。其中的處理功能可以用IPO圖(或表)和偽碼等多種方式進(jìn)一步描述。通常在建立了對象模型和動態(tài)模型之后再建立功能模型。7.4 建立功能模型有關(guān)數(shù)據(jù)流圖的概念和畫

12、法。畫出基本系統(tǒng)模型圖畫出功能級數(shù)據(jù)流圖描述處理框功能7.5 定義服務(wù)“對象”是由描述其屬性的數(shù)據(jù),以及可以對這些數(shù)據(jù)施加的操作(即服務(wù)),封裝在一起構(gòu)成的獨(dú)立單元。因此,為建立完整的對象模型,既要確定類中應(yīng)該定義的屬性,又要確定類中應(yīng)該定義的服務(wù)。事實上,在確定類中應(yīng)有的服務(wù)時,既要考慮該類實體的常規(guī)行為,又要考慮在本系統(tǒng)中特殊需要的服務(wù)。7.5 定義服務(wù)1常規(guī)行為在分析階段可以認(rèn)為,類中定義的每個屬性都是可以訪問的,也就是說,假設(shè)在每個類中都定義了讀、寫該類每個屬性的操作。但是,通常無須在對象圖中顯式表示這些常規(guī)操作。2從事件導(dǎo)出的操作狀態(tài)圖中發(fā)往對象的事件也就是該對象接收到的消息,因此該

13、對象必須有由消息選擇符指定的操作,這個操作修改對象狀態(tài)(即屬性值)并啟動相應(yīng)的服務(wù)。例如,在ATM系統(tǒng)中,發(fā)往ATM對象的事件“中止”,啟動該對象的服務(wù)“打印賬單”;發(fā)往分行的事件“請分行驗卡”,啟動該對象的服務(wù)“驗證卡號”;而事件“處理分行事務(wù)”,啟動分行對象的服務(wù)“更新賬戶”。可以看出,所啟動的這些服務(wù)通常就是接受事件的對象在相應(yīng)狀態(tài)的行為。7.5 定義服務(wù)3與數(shù)據(jù)流圖中處理框?qū)?yīng)的操作數(shù)據(jù)流圖中的每個處理框都與一個對象(也可能是若干個對象)上的操作相對應(yīng)。應(yīng)該仔細(xì)對照狀態(tài)圖和數(shù)據(jù)流圖,以便更正確地確定對象應(yīng)該提供的服務(wù)。例如,在ATM系統(tǒng)中,從狀態(tài)圖上看出分行對象應(yīng)該提供“驗證卡號”服務(wù)

14、,而在數(shù)據(jù)流圖上與之對應(yīng)的處理框是“驗卡”,根據(jù)實際應(yīng)該完成的功能看,該對象提供的這個服務(wù)應(yīng)該是“驗卡”。4利用繼承減少冗余操作應(yīng)該盡量利用繼承機(jī)制以減少所需定義的服務(wù)數(shù)目。只要不違背領(lǐng)域知識和常識,就盡量抽取出相似類的公共屬性和操作,以建立這些類的新父類,并在類等級的不同層次中正確地定義各個服務(wù)。7.6 面向?qū)ο笤O(shè)計分析是提取和整理用戶需求,并建立問題域精確模型的過程。設(shè)計則是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案的過程。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(通??s寫為OOD),是一個逐漸擴(kuò)充模型的過程?;蛘哒f,面向?qū)ο笤O(shè)計就是用面向?qū)ο笥^點(diǎn)建立求解域模型的過程。7.6

15、面向?qū)ο笤O(shè)計7.6.1 面向?qū)ο笤O(shè)計的準(zhǔn)則1模塊化2抽象3信息隱藏4弱耦合5強(qiáng)內(nèi)聚6可重用7.6 面向?qū)ο笤O(shè)計7.6.2 面向?qū)ο笤O(shè)計的啟發(fā)原則1設(shè)計結(jié)果應(yīng)該清晰易懂2一般/特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)3設(shè)計簡單的類4使用簡單的協(xié)議5使用簡單的服務(wù)6把設(shè)計變動減至最小7.6 面向?qū)ο笤O(shè)計7.6.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計關(guān)注于確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。開發(fā)人員將問題分解為若干個子系統(tǒng),子系統(tǒng)和子系統(tǒng)之間通過接口進(jìn)行聯(lián)系。7.6 面向?qū)ο笤O(shè)計7.6.4 對象設(shè)計面向?qū)ο蠓治龅贸龅膶ο竽P?,通常并不詳?xì)描述類中的服務(wù)。面向?qū)ο笤O(shè)計則是擴(kuò)充、完善和細(xì)化面向?qū)ο蠓治瞿P偷倪^程,設(shè)計類中的服務(wù)、實現(xiàn)服務(wù)

16、的算法是面向?qū)ο笤O(shè)計的重要任務(wù),還要設(shè)計類的關(guān)聯(lián)、接口形式以及設(shè)計的優(yōu)化。7.6 面向?qū)ο笤O(shè)計7.6.4 對象設(shè)計對象描述對象是類或子類的一個實例,對象設(shè)計描述可選擇以下兩種形式。協(xié)議描述。通過定義對象可以接收的每個消息和當(dāng)對象接收到消息后完成的相關(guān)操作來建立對象的接口。協(xié)議描述則是一組消息和對消息的注釋。對有很多消息的大型系統(tǒng),可能要創(chuàng)建消息的類別。實現(xiàn)描述。描述由傳遞給對象的消息所蘊(yùn)含的每個操作的實現(xiàn)細(xì)節(jié),包括對象名的定義和類的引用、關(guān)于描述對象的屬性的數(shù)據(jù)結(jié)構(gòu)的定義及操作過程的細(xì)節(jié)。7.6 面向?qū)ο笤O(shè)計7.6.4 對象設(shè)計設(shè)計類中的服務(wù)確定類中應(yīng)有的服務(wù)。需要綜合考慮對象模型、動態(tài)模型和

17、功能模型,才能正確確定類中應(yīng)有的服務(wù)。對象模型是進(jìn)行對象設(shè)計的基本框架。它常在每個類中列出很少幾個最核心的服務(wù)。設(shè)計者必須把動態(tài)模型中對象的行為以及功能模型中的數(shù)據(jù)處理,轉(zhuǎn)換成由適當(dāng)?shù)念愃峁┑姆?wù)。功能模型指明了系統(tǒng)必須提供的服務(wù)。一張狀態(tài)圖描繪了一個對象的生命周期,圖中的狀態(tài)轉(zhuǎn)換是執(zhí)行對象服務(wù)的結(jié)果。狀態(tài)圖中狀態(tài)轉(zhuǎn)換所觸發(fā)的動作,在功能模型中有時可能擴(kuò)展成一張數(shù)據(jù)流圖,如狀態(tài)圖中對相對事件的響應(yīng)、數(shù)據(jù)圖中的處理、輸入流對象、輸出流對象及存儲對象等。設(shè)計實現(xiàn)服務(wù)的方法。設(shè)計實現(xiàn)服務(wù)的方法應(yīng)首先設(shè)計實現(xiàn)服務(wù)的算法,包括算法復(fù)雜度、算法是否容易理解與容易實現(xiàn)。其次是選擇數(shù)據(jù)結(jié)構(gòu),需要選擇能夠方便

18、、有效地實現(xiàn)算法的物理數(shù)據(jù)結(jié)構(gòu)。最后是定義內(nèi)部類和內(nèi)部操作,可能需要增添一些用于存放中間結(jié)果的類。7.6 面向?qū)ο笤O(shè)計7.6.4 對象設(shè)計設(shè)計類中的關(guān)聯(lián)在對象模型中,關(guān)聯(lián)是連接不同對象的紐帶,它指定了對象相互間的訪問路徑。在設(shè)計過程中,必須確定實現(xiàn)關(guān)聯(lián)的具體策略。既可以選定一個全局性的策略統(tǒng)一實現(xiàn)所有關(guān)聯(lián),也可以分別為每個關(guān)聯(lián)選擇具體的實現(xiàn)策略,以與它在應(yīng)用系統(tǒng)中的使用方式相適應(yīng)。在應(yīng)用系統(tǒng)中,為了更好地設(shè)計實現(xiàn)關(guān)聯(lián)的途徑,應(yīng)該分析使用關(guān)聯(lián)的方式。在應(yīng)用系統(tǒng)中,使用關(guān)聯(lián)有兩種可能的方式:只需單向遍歷單相關(guān)聯(lián)和需要雙向遍歷雙向關(guān)聯(lián)。單向關(guān)聯(lián)用指針實現(xiàn), 雙向關(guān)聯(lián)則用指針集合實現(xiàn)。7.6 面向?qū)ο?/p>

19、設(shè)計7.6.4 對象設(shè)計實現(xiàn)鏈屬性實現(xiàn)鏈屬性應(yīng)根據(jù)關(guān)聯(lián)的具體情況分別處理。若為一對一關(guān)聯(lián),鏈屬性可以作為其中一個對象的屬性而存儲在該對象中。對于一對多關(guān)聯(lián),鏈屬性可以作為多端對象的一個屬性。對于多對多關(guān)聯(lián),使用一個獨(dú)立的類來實現(xiàn)鏈接屬性。例如將“畢業(yè)設(shè)計選題”作為一個對象類,使教師類與學(xué)生類多對多關(guān)聯(lián),變?yōu)榻處熍c畢業(yè)設(shè)計題目的一對多關(guān)聯(lián)以及學(xué)生與畢業(yè)設(shè)計題目的一對一關(guān)聯(lián)。7.6 面向?qū)ο笤O(shè)計7.6.4 對象設(shè)計優(yōu)化設(shè)計設(shè)計人員必須確定各項質(zhì)量指標(biāo)的相對重要性(即確定優(yōu)先級),以便在優(yōu)化設(shè)計時制定折衷方案。最常見的情況,是在效率和清晰性之間尋求適當(dāng)?shù)恼壑蟹桨?,有時可以用冗余的關(guān)聯(lián)以提高訪問效率,

20、或調(diào)整查詢次序,或保留派生的屬性等方法來優(yōu)化設(shè)計。究竟如何設(shè)計才算是優(yōu)化,要取得系統(tǒng)應(yīng)用領(lǐng)域?qū)<液陀脩舻恼J(rèn)可。7.7 面向?qū)ο髮崿F(xiàn)面向?qū)ο髮崿F(xiàn)主要包括兩項工作:一是把面向?qū)ο笤O(shè)計結(jié)果,翻譯成用某種程序設(shè)計語言書寫的面向?qū)ο蟪绦?;二是測試并調(diào)試面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟪绦虻馁|(zhì)量基本上由面向?qū)ο笤O(shè)計的質(zhì)量決定。但是,所采用的程序設(shè)計語言的特點(diǎn)和程序設(shè)計風(fēng)格也將對程序的可靠性、可重用性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響。7.7 面向?qū)ο髮崿F(xiàn)7.7.1.1 面向?qū)ο笳Z言的優(yōu)點(diǎn)面向?qū)ο笤O(shè)計的結(jié)果,既可以用面向?qū)ο笳Z言,也可以用非面向?qū)ο笳Z言實現(xiàn)。使用面向?qū)ο笳Z言時,由于語言本身充分支持面向?qū)ο蟾拍畹膶崿F(xiàn),因此,編譯

21、程序可以自動地把面向?qū)ο蟾拍钣成涞侥繕?biāo)程序中。使用非面向?qū)ο笳Z言編寫面向?qū)ο蟪绦?,則必須由程序員自己把面向?qū)ο蟾拍钣成涞侥繕?biāo)程序中。7.7 面向?qū)ο髮崿F(xiàn)7.7.1.3 選擇面向?qū)ο笳Z言開發(fā)人員在選擇面向?qū)ο笳Z言時,還應(yīng)該著重考慮以下一些實際因素。將來能否占主導(dǎo)地位可重用性類庫開發(fā)環(huán)境其他因素在選擇編程語言時,應(yīng)該考慮的其他因素還有:對用戶學(xué)習(xí)面向?qū)ο蠓治?、設(shè)計和編碼技術(shù)所能提供的培訓(xùn)服務(wù);在使用這個面向?qū)ο笳Z言期間能提供的技術(shù)支持;能提供給開發(fā)人員使用的開發(fā)工具、開發(fā)平臺和發(fā)行平臺,對機(jī)器性能和內(nèi)存的需求,集成已有軟件的容易程度等。7.7 面向?qū)ο髮崿F(xiàn)7.7.2 面向?qū)ο蟮某绦蛟O(shè)計風(fēng)格良好的程序設(shè)計風(fēng)格對保證程序質(zhì)量的重要性。良好的程序設(shè)計風(fēng)格對面向?qū)ο髮崿F(xiàn)來說尤其重要,它不僅能明顯減少維護(hù)或擴(kuò)充的開銷,而且也有助于在新項目中重用已有的程序代碼。良好的面向?qū)ο蟪绦蛟O(shè)計風(fēng)格,既包括傳統(tǒng)的程序設(shè)計風(fēng)格準(zhǔn)則,也包括為適應(yīng)面向?qū)ο蠓椒ㄋ赜械母拍睿ㄈ缋^承性)而必須遵循的一些新準(zhǔn)則。7.7 面向?qū)ο髮崿F(xiàn)7.7

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論