分析阶段的类图和设计阶段的类图有什么区别?
設(shè)計(jì)類圖是類圖的一個(gè)變體,類圖表示一系列的類以及它們之間的關(guān)系。因?yàn)榉治鲭A段是一個(gè)發(fā)現(xiàn)需求的過程,所以我們一般很少關(guān)心類的屬性和方法的細(xì)節(jié)。在面向?qū)ο笤O(shè)計(jì)中,類的屬性有一個(gè)特征叫可見性,它表示其它類是否可以訪問該屬性。類的每個(gè)屬性都有一個(gè)類型定義,例如字符串或數(shù)值類型。在詳細(xì)設(shè)計(jì)階段,我們需要細(xì)化這些屬性,并且定義方法的名稱、返回值以及傳入的參數(shù)。因此,雖然分析階段和設(shè)計(jì)階段的類圖很相似,但設(shè)計(jì)階段的類圖更完善。
下圖顯示了用于設(shè)計(jì)類圖要使用的符號,這個(gè)類圖是一個(gè)簡化的版本,它僅僅顯示了屬性和方法標(biāo)識。
?
?
圖 1 一個(gè)簡單類圖
類圖的圖形符號是一個(gè)矩形框,矩形框分為三個(gè)部分。第一部分是類名,在這里寫入類的名稱;第二部分是屬性列表,在這里寫入類的所有屬性,包括屬性的名稱、屬性的可見性和屬性的類型。屬性的可見性用于表示其它類是否能直接訪問這些屬性;第三部分是方法列表,在這里寫入類的所有方法,包括方法的名稱、返回值以及傳入的參數(shù)。
屬性列表包含了在分析階段所發(fā)現(xiàn)類的所有屬性。此外,還包括一些其它屬性,這些屬性用來表示和其它類的對象相關(guān)聯(lián)的對象引用。例如,一個(gè)賬號對應(yīng)一個(gè)客戶,客戶賬號類需要一個(gè)方法找到正確的客戶。有兩種方法可以做到這一點(diǎn),一是定義一個(gè)域,可以直接引用或連接正確的客戶對象,這個(gè)域叫做對象引用或?qū)ο笾羔?#xff1b;另一種方法是在客戶賬號類中為客戶類插入一個(gè)外部碼。前面的方法比較適合類之間的引用,后面的方法比較適合關(guān)系數(shù)據(jù)庫表的關(guān)聯(lián)。
另外補(bǔ)充的一個(gè)屬性是狀態(tài)值屬性,類中加入這個(gè)屬性能夠維護(hù)對象所處的狀態(tài)的信息。狀態(tài)信息從狀態(tài)圖中提取并加入到方法邏輯中,這個(gè)屬性就是類的狀態(tài)變量。例如,用戶類要保存用戶是否登錄系統(tǒng)的狀態(tài)。
方法列表包含了在分析階段所發(fā)現(xiàn)類的所有方法,分析階段的類圖僅給出了類的中文方法名稱。在設(shè)計(jì)階段需要用英文確定方法的名稱,并給出方法的返回值和傳入的參數(shù)。
圖2是人脈系統(tǒng)名片類分析階段的類圖,圖3是人脈系統(tǒng)名片類設(shè)計(jì)階段的類圖。
?
圖 2 人脈系統(tǒng)名片分析階段的類圖
?
圖 3 人脈系統(tǒng)名片設(shè)計(jì)類圖
從圖2和圖3可以看出,分析階段的類圖主要是從業(yè)務(wù)領(lǐng)域獲取信息的,在描述上更多使用了業(yè)務(wù)領(lǐng)域的語言和詞匯。設(shè)計(jì)階段的類圖是從編程實(shí)現(xiàn)角度來設(shè)計(jì)類圖的,更多的是考慮類編碼的實(shí)現(xiàn)。圖3的設(shè)計(jì)類圖不僅給出了類的英文名稱、類屬性的可見性、類屬性的英文名稱、類屬性的數(shù)據(jù)類型,還給出了類方法的返回值、方法的英文名稱和方法的傳入?yún)?shù)。程序員可以根據(jù)設(shè)計(jì)類圖直接編寫類代碼,也可以使用代碼自動生成軟件來自動創(chuàng)建類代碼。
總結(jié)
以上是生活随笔為你收集整理的分析阶段的类图和设计阶段的类图有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (原創) 如何在Visual Studi
- 下一篇: webpack系列-plugin