第10章面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)-2.課件電子教案_第1頁
第10章面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)-2.課件電子教案_第2頁
第10章面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)-2.課件電子教案_第3頁
第10章面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)-2.課件電子教案_第4頁
第10章面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)-2.課件電子教案_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第10章 面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)徐徐 天天 宇宇10.1.2詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) l系統(tǒng)詳細(xì)設(shè)計(jì)階段的主要任務(wù)是確保設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì)階段的主要任務(wù)是確保設(shè)計(jì)方案能夠?yàn)楹罄m(xù)實(shí)施活動(dòng)提供詳細(xì)明確的方案能夠?yàn)楹罄m(xù)實(shí)施活動(dòng)提供詳細(xì)明確的依據(jù)。依據(jù)。l對類和類的相互關(guān)系進(jìn)行詳細(xì)的定義、以對類和類的相互關(guān)系進(jìn)行詳細(xì)的定義、以及如何用具體的算法和數(shù)據(jù)結(jié)構(gòu)來表示和及如何用具體的算法和數(shù)據(jù)結(jié)構(gòu)來表示和實(shí)現(xiàn)是此階段的具體內(nèi)容。實(shí)現(xiàn)是此階段的具體內(nèi)容。1.設(shè)計(jì)模式的使用設(shè)計(jì)模式的使用l設(shè)計(jì)模式是進(jìn)行應(yīng)用系統(tǒng)設(shè)計(jì)時(shí)可復(fù)用的設(shè)計(jì)模式是進(jìn)行應(yīng)用系統(tǒng)設(shè)計(jì)時(shí)可復(fù)用的慣用模式,設(shè)計(jì)模式總結(jié)了常用問題的解慣用模式,設(shè)計(jì)模式總結(jié)了常用問題

2、的解決方法,它使設(shè)計(jì)人員可以共享已有的設(shè)決方法,它使設(shè)計(jì)人員可以共享已有的設(shè)計(jì)經(jīng)驗(yàn),提高設(shè)計(jì)效率和質(zhì)量。計(jì)經(jīng)驗(yàn),提高設(shè)計(jì)效率和質(zhì)量。 l對于面向?qū)ο蟮膶τ诿嫦驅(qū)ο蟮腤eb應(yīng)用系統(tǒng)設(shè)計(jì),目前應(yīng)用系統(tǒng)設(shè)計(jì),目前主要使用的設(shè)計(jì)模式是主要使用的設(shè)計(jì)模式是MVC MVC設(shè)計(jì)模式設(shè)計(jì)模式 l模型模型-視圖視圖-控制控制(model-view-control,簡,簡稱稱MVC)結(jié)構(gòu)是目前最常見的結(jié)構(gòu)是目前最常見的J2EE應(yīng)用所應(yīng)用所基于的體系結(jié)構(gòu),基于的體系結(jié)構(gòu),MVC主要適用于交互主要適用于交互式的式的Web應(yīng)用,應(yīng)用, MVC結(jié)構(gòu)結(jié)構(gòu)l視圖視圖(View)顯示顯示Model的數(shù)據(jù),提交的數(shù)據(jù),提交由由C

3、ontroller提供的數(shù)據(jù)。提供的數(shù)據(jù)。l模型模型(Model)維護(hù)應(yīng)用程序的狀態(tài)和數(shù)維護(hù)應(yīng)用程序的狀態(tài)和數(shù)據(jù),可以接受來自據(jù),可以接受來自View的查詢并做出的查詢并做出響應(yīng)。同時(shí)當(dāng)響應(yīng)。同時(shí)當(dāng)Model的數(shù)據(jù)發(fā)生變化的數(shù)據(jù)發(fā)生變化時(shí),它把變化通知給時(shí),它把變化通知給View , View根根據(jù)據(jù)Model的數(shù)據(jù)發(fā)生來更新自己。的數(shù)據(jù)發(fā)生來更新自己。l控制器控制器(Controller)定義了抽象的業(yè)務(wù)定義了抽象的業(yè)務(wù)邏輯,用于控制業(yè)務(wù)流程。邏輯,用于控制業(yè)務(wù)流程。 用于描述用于描述Model如何對用戶的動(dòng)作做出反應(yīng),如何對用戶的動(dòng)作做出反應(yīng),即處理事件。即處理事件。MVC關(guān)系圖MVC在在

4、 Web系統(tǒng)中的應(yīng)用系統(tǒng)中的應(yīng)用 l電子商務(wù)系統(tǒng),適合采用電子商務(wù)系統(tǒng),適合采用MVC體系結(jié)構(gòu)。體系結(jié)構(gòu)。l可以將一個(gè)應(yīng)用的對象分為三類??梢詫⒁粋€(gè)應(yīng)用的對象分為三類。l一類就是負(fù)責(zé)顯示的對象,一類就是負(fù)責(zé)顯示的對象,l一類對象包含商業(yè)規(guī)則和數(shù)據(jù),一類對象包含商業(yè)規(guī)則和數(shù)據(jù),l一類就是接收請求,控制商業(yè)對象去完成一類就是接收請求,控制商業(yè)對象去完成請求。請求。MVC的優(yōu)點(diǎn)的優(yōu)點(diǎn) l1)松散的耦合;松散的耦合;l2)并行的開發(fā);并行的開發(fā);l3)可擴(kuò)展性;可擴(kuò)展性;l4)可重用性可重用性;l5)模塊的有效性;模塊的有效性;l6)模型的可移植性模型的可移植性: MVC 體系結(jié)構(gòu)的不足體系結(jié)構(gòu)的不足

5、 l1)理解困難,耗費(fèi)時(shí)間;理解困難,耗費(fèi)時(shí)間;l2)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性;增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性;l3)視圖與控制器間過于緊密的連接。視圖與控制器間過于緊密的連接。 設(shè)計(jì)模式的選擇與應(yīng)用l分析類分析類+設(shè)計(jì)模式設(shè)計(jì)模式設(shè)計(jì)類設(shè)計(jì)類l定義設(shè)計(jì)類的第一步就是根據(jù)項(xiàng)目特點(diǎn)選定義設(shè)計(jì)類的第一步就是根據(jù)項(xiàng)目特點(diǎn)選擇將要采用的設(shè)計(jì)模式。設(shè)計(jì)模式的選擇擇將要采用的設(shè)計(jì)模式。設(shè)計(jì)模式的選擇要考慮到該模式對應(yīng)的語言和環(huán)境,以及要考慮到該模式對應(yīng)的語言和環(huán)境,以及模式的適用范圍。模式的適用范圍。l基于基于JSP 開發(fā)網(wǎng)站時(shí),通常有兩種設(shè)計(jì)開發(fā)網(wǎng)站時(shí),通常有兩種設(shè)計(jì)模式,稱為模式,稱為Model1

6、和和Model2 。 Model1和Model2lModel1:通過一組:通過一組JSP的結(jié)合制作出來的結(jié)合制作出來的,是以的,是以JSP為中心的設(shè)計(jì)模式。為中心的設(shè)計(jì)模式。lModel2:是采用:是采用MVC架構(gòu)的設(shè)計(jì)模式。架構(gòu)的設(shè)計(jì)模式。Model1lModel1模式模式其實(shí)還可以再分為兩種,其實(shí)還可以再分為兩種,l一種是完全使用一種是完全使用JSP來開發(fā),來開發(fā),l另外一種則是使用另外一種則是使用JSPJavaBean的設(shè)的設(shè)計(jì),計(jì),Model1-完全使用JSP開發(fā)系統(tǒng)l(1)完全使用)完全使用JSP開發(fā)系統(tǒng)。開發(fā)系統(tǒng)。l 優(yōu)點(diǎn)是:優(yōu)點(diǎn)是:l l)開發(fā)時(shí)程縮短)開發(fā)時(shí)程縮短;。l 2)小

7、幅度修改非常容易)小幅度修改非常容易;Model1-完全使用JSP開發(fā)系統(tǒng)l缺點(diǎn):缺點(diǎn):l l)程序可讀性降低)程序可讀性降低;l 2)程序重復(fù)利用性降低)程序重復(fù)利用性降低;2)JSPJavaBean架構(gòu)的Model1 l進(jìn)行快速及小型的項(xiàng)目開發(fā)具有非常大的優(yōu)勢,進(jìn)行快速及小型的項(xiàng)目開發(fā)具有非常大的優(yōu)勢,l將部分可以重復(fù)利用的程序代碼抽出來寫成將部分可以重復(fù)利用的程序代碼抽出來寫成JavaBean,當(dāng)用戶送來一個(gè)需求時(shí),通過,當(dāng)用戶送來一個(gè)需求時(shí),通過JSP調(diào)用調(diào)用JavaBean負(fù)責(zé)相關(guān)數(shù)據(jù)存取、邏輯運(yùn)算等負(fù)責(zé)相關(guān)數(shù)據(jù)存取、邏輯運(yùn)算等的處理,最后將結(jié)果回傳到的處理,最后將結(jié)果回傳到JSP顯

8、示結(jié)果。顯示結(jié)果。l這樣,不同的這樣,不同的JSP可以調(diào)用許多共享性的程序代可以調(diào)用許多共享性的程序代碼,減少編寫重復(fù)程序代碼的工作,增加開發(fā)效碼,減少編寫重復(fù)程序代碼的工作,增加開發(fā)效率。率。JSPJavaBean架構(gòu)JSPJavaBean架構(gòu)的Model1l但是這種方式缺乏流程控制,缺少了但是這種方式缺乏流程控制,缺少了MVC中的中的Controller去控制相關(guān)的流程,去控制相關(guān)的流程,Model2lModel2就是采用就是采用MVC架構(gòu)的開發(fā)模式。架構(gòu)的開發(fā)模式。lModel代表的是應(yīng)用程序的應(yīng)用邏輯;代表的是應(yīng)用程序的應(yīng)用邏輯;lView是系統(tǒng)的顯示接口;是系統(tǒng)的顯示接口;lCont

9、roller是提供應(yīng)用程序的處理過程控制是提供應(yīng)用程序的處理過程控制MVC設(shè)計(jì)模式l基于基于Bean的的MVC模型模型l可以利用可以利用JavaBean實(shí)現(xiàn),也可以利用實(shí)現(xiàn),也可以利用EJB實(shí)現(xiàn)實(shí)現(xiàn),分別構(gòu)成的系統(tǒng)是分別構(gòu)成的系統(tǒng)是lJavaBean(M)+ JSP(V)+Servlet(C)lEJB(M)+ JSP(V)+Servlet(C)MVC設(shè)計(jì)模式JavaBean(M)+ JSP(V)+Servlet(C)Struts框架框架 l Struts是較好的是較好的JSP Framework Struts框架框架 2.設(shè)計(jì)設(shè)計(jì)類設(shè)計(jì)設(shè)計(jì)類 l在設(shè)計(jì)階段定義的類,稱它們?yōu)樵O(shè)計(jì)類。在設(shè)計(jì)階段定

10、義的類,稱它們?yōu)樵O(shè)計(jì)類。l識(shí)別設(shè)計(jì)類可以從分析階段定義的分析類入識(shí)別設(shè)計(jì)類可以從分析階段定義的分析類入手手l要具體設(shè)計(jì)每個(gè)類的內(nèi)容,包括為每個(gè)類設(shè)要具體設(shè)計(jì)每個(gè)類的內(nèi)容,包括為每個(gè)類設(shè)計(jì)操作、屬性、關(guān)系、狀態(tài)和設(shè)計(jì)類的特殊計(jì)操作、屬性、關(guān)系、狀態(tài)和設(shè)計(jì)類的特殊需求。需求。 定義類的屬性定義類的屬性 l設(shè)計(jì)類的屬性時(shí)有些內(nèi)容是必須要定義的,設(shè)計(jì)類的屬性時(shí)有些內(nèi)容是必須要定義的,有些內(nèi)容是可選的。有些內(nèi)容是可選的。l必須定義的內(nèi)容有:必須定義的內(nèi)容有:l(1) (1) 屬性的數(shù)據(jù)類型。屬性的數(shù)據(jù)類型。l(2(2)屬性的可見性)屬性的可見性屬性命名 l屬性名的一般形式屬性名的一般形式: :l att

11、ributeName attributeNamel首先應(yīng)命名屬性。首先應(yīng)命名屬性。l屬性應(yīng)該以一致的風(fēng)格命名屬性應(yīng)該以一致的風(fēng)格命名l屬性命名與類命名的原則相似,使用屬性命名與類命名的原則相似,使用2-32-3個(gè)英文單詞,首單詞的首字母小寫個(gè)英文單詞,首單詞的首字母小寫, ,其他其他大寫,意義要明確。大寫,意義要明確。屬性名稱“不好的不好的”名字名字“好的好的”名名字字問問 題題FrNamefirstName屬性名稱中不要使用縮寫屬性名稱中不要使用縮寫firstnamefirstName大寫第個(gè)詞的首字母會(huì)大寫第個(gè)詞的首字母會(huì)使屬性名稱更易閱讀使屬性名稱更易閱讀personFirstNamef

12、irstName這依賴于屬性的上下文,這依賴于屬性的上下文,但如果這是但如果這是“Person”類的屬性類的屬性, 包含包含“person”只會(huì)增加名只會(huì)增加名稱的長度而并不提供任稱的長度而并不提供任何價(jià)值何價(jià)值屬性名稱 hTTPconnectionhttpConnection縮略詞應(yīng)該小寫縮略詞應(yīng)該小寫firstNamestringfirstName 指明屬性的類型指明屬性的類型本例本例中是中是“string”,會(huì)把名,會(huì)把名稱和類型耦合起來。如稱和類型耦合起來。如果類型發(fā)生了變化(也果類型發(fā)生了變化(也許你決定把這個(gè)屬性作許你決定把這個(gè)屬性作為類為類“Namestring”的一的一個(gè)實(shí)例重

13、新實(shí)現(xiàn)),那個(gè)實(shí)例重新實(shí)現(xiàn)),那么你么你 需要重新為屬性命名需要重新為屬性命名otherltemCollectionorderItems第二個(gè)版本更短一些,也第二個(gè)版本更短一些,也更容易理解更容易理解設(shè)計(jì)屬性的數(shù)據(jù)類型 l設(shè)計(jì)屬性時(shí)必須要根據(jù)使用的開發(fā)語言確設(shè)計(jì)屬性時(shí)必須要根據(jù)使用的開發(fā)語言確定每個(gè)屬性的數(shù)據(jù)類型,定每個(gè)屬性的數(shù)據(jù)類型,l如果數(shù)據(jù)類型不夠,設(shè)計(jì)人員可以利用已如果數(shù)據(jù)類型不夠,設(shè)計(jì)人員可以利用已有的數(shù)據(jù)類型定義新的數(shù)據(jù)類型。有的數(shù)據(jù)類型定義新的數(shù)據(jù)類型。設(shè)計(jì)屬性的可見性 l一般的經(jīng)驗(yàn)是:一般的經(jīng)驗(yàn)是:l把把private可見性賦予所有屬性??梢娦再x予所有屬性。l始終調(diào)用屬性的始終

14、調(diào)用屬性的set操作對其進(jìn)行更新,操作對其進(jìn)行更新,即使在該屬性定義的類中也應(yīng)該如此;即使在該屬性定義的類中也應(yīng)該如此;l僅通過僅通過get操作直接訪問屬性;操作直接訪問屬性;l在屬性的在屬性的set操作中,實(shí)現(xiàn)簡單的驗(yàn)證有操作中,實(shí)現(xiàn)簡單的驗(yàn)證有效性的邏輯。效性的邏輯。 可選的屬性設(shè)計(jì) l屬性的初始值。屬性的初始值。在設(shè)計(jì)屬性時(shí)要注意下面幾點(diǎn):l如果一個(gè)設(shè)計(jì)類因?yàn)槠鋵傩缘脑蜃兊脧?fù)如果一個(gè)設(shè)計(jì)類因?yàn)槠鋵傩缘脑蜃兊脧?fù)雜而難于理解,那么就將一些屬性分離出雜而難于理解,那么就將一些屬性分離出來形成一個(gè)新的類。來形成一個(gè)新的類。l類的屬性數(shù)據(jù)結(jié)構(gòu)要堅(jiān)持簡單的原則,盡類的屬性數(shù)據(jù)結(jié)構(gòu)要堅(jiān)持簡單的原則

15、,盡可能不使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)??赡懿皇褂脧?fù)雜的數(shù)據(jù)結(jié)構(gòu)。定義類的操作定義類的操作 l通常,定義一個(gè)設(shè)計(jì)類的操作的方法之一是通常,定義一個(gè)設(shè)計(jì)類的操作的方法之一是跟蹤對應(yīng)的跟蹤對應(yīng)的”分析類分析類”職責(zé),詳細(xì)分析每個(gè)職責(zé),詳細(xì)分析每個(gè)職責(zé)的具體含義,從中找出設(shè)計(jì)類應(yīng)該具備職責(zé)的具體含義,從中找出設(shè)計(jì)類應(yīng)該具備的操作。的操作。l一個(gè)分析類的職責(zé)有可能需要設(shè)計(jì)類的一個(gè)一個(gè)分析類的職責(zé)有可能需要設(shè)計(jì)類的一個(gè)或多個(gè)操作才能完成?;蚨鄠€(gè)操作才能完成。職責(zé)分配原則在類間分配職責(zé)時(shí),應(yīng)考慮下面的原則。在類間分配職責(zé)時(shí),應(yīng)考慮下面的原則。l單一職責(zé)原則單一職責(zé)原則l一個(gè)類主要圍繞一個(gè)職責(zé)設(shè)計(jì)。如果承擔(dān)的職一個(gè)類

16、主要圍繞一個(gè)職責(zé)設(shè)計(jì)。如果承擔(dān)的職責(zé)過多,可考慮將它分成多個(gè)類。如果沒有明責(zé)過多,可考慮將它分成多個(gè)類。如果沒有明確的職責(zé),則可考慮取消該類。確的職責(zé),則可考慮取消該類。l依賴抽象而非具體原則依賴抽象而非具體原則l盡量在接口間建立聯(lián)系,而不是在具體類間盡量在接口間建立聯(lián)系,而不是在具體類間職責(zé)分配原則l惰性原則惰性原則l不要主動(dòng)為類添加功能,除非為了滿足測試的不要主動(dòng)為類添加功能,除非為了滿足測試的需要或?qū)崿F(xiàn)必須承擔(dān)的職責(zé)需要或?qū)崿F(xiàn)必須承擔(dān)的職責(zé) l內(nèi)聚外松原則內(nèi)聚外松原則l保證類內(nèi)的操作、特性具有最大的聚合度,而保證類內(nèi)的操作、特性具有最大的聚合度,而同時(shí)將類間的耦合度降到最低。同時(shí)將類間的

17、耦合度降到最低。 定義類的操作定義類的操作l通常,一個(gè)設(shè)計(jì)類不只參與一個(gè)用例。所以通常,一個(gè)設(shè)計(jì)類不只參與一個(gè)用例。所以應(yīng)檢查,這樣的設(shè)計(jì)類是否滿足了所有有關(guān)應(yīng)檢查,這樣的設(shè)計(jì)類是否滿足了所有有關(guān)用例的要求。用例的要求。l另外,系統(tǒng)的效率、可用性、安全性等非功另外,系統(tǒng)的效率、可用性、安全性等非功能性需求,常常要落實(shí)到一些操作上來,因能性需求,常常要落實(shí)到一些操作上來,因此還需要增加某些操作來實(shí)現(xiàn)這些需求。此還需要增加某些操作來實(shí)現(xiàn)這些需求。 對設(shè)計(jì)類操作的常見設(shè)計(jì):l操作的名稱;操作的名稱;l操作的參數(shù);操作的參數(shù);l操作返回類型;操作返回類型;l操作的可見性;操作的可見性;l操作的并發(fā)性;

18、操作的并發(fā)性;l操作的前提條件和事后條件。操作的前提條件和事后條件。操作命名l操作名的一般形式操作名的一般形式: methodName()l操作名由操作名由23個(gè)單詞構(gòu)成,第一個(gè)單詞的首字個(gè)單詞構(gòu)成,第一個(gè)單詞的首字母小寫母小寫,其他單詞首字母大寫其他單詞首字母大寫: 例例: studentName() getAverageMark()l命名原則命名原則:l用完整的單詞用完整的單詞,不用縮寫;動(dòng)詞開頭不用縮寫;動(dòng)詞開頭,以主動(dòng)態(tài)表以主動(dòng)態(tài)表示;語義盡可能明確。示;語義盡可能明確。 操作名稱應(yīng)統(tǒng)一l如如l“getFirstName()”和和“ fetchFirstName()”l的操作名稱就不統(tǒng)

19、一,如果兩個(gè)名字都以的操作名稱就不統(tǒng)一,如果兩個(gè)名字都以“get”開頭,就可以讓它們統(tǒng)一起來。開頭,就可以讓它們統(tǒng)一起來。參數(shù)名稱應(yīng)統(tǒng)一l參數(shù)名稱也應(yīng)當(dāng)彼此統(tǒng)一。例如,參數(shù)名稱也應(yīng)當(dāng)彼此統(tǒng)一。例如,“ theFirstName”、l“ firstName”l“ firstNm”l這樣的參數(shù)名稱就彼此不統(tǒng)一。這樣的參數(shù)名稱就彼此不統(tǒng)一。參數(shù)的順序應(yīng)統(tǒng)一l參數(shù)的順序也應(yīng)當(dāng)統(tǒng)一。例如,操作參數(shù)的順序也應(yīng)當(dāng)統(tǒng)一。例如,操作l“dOSomething(securityToken,StartDate)”l“doSomethingElse(studentNumber,securityToken”,l可以通過

20、都把可以通過都把“securityToken”作為第一個(gè)作為第一個(gè)(或最后一個(gè))參數(shù)傳遞,使其更加統(tǒng)一。(或最后一個(gè))參數(shù)傳遞,使其更加統(tǒng)一。 操作的可見性 l讓操作按需提供可見性,不要超過限度。讓操作按需提供可見性,不要超過限度。l為了減少系統(tǒng)的耦合,通用的操作是:在為了減少系統(tǒng)的耦合,通用的操作是:在設(shè)置某個(gè)操作的可見性時(shí),盡量地限制其設(shè)置某個(gè)操作的可見性時(shí),盡量地限制其可見性??梢娦浴7椒ㄔO(shè)計(jì) l方法設(shè)計(jì)描述的是操作的具體實(shí)現(xiàn),所以方法設(shè)計(jì)描述的是操作的具體實(shí)現(xiàn),所以與選用的編程語言密切相關(guān)。與選用的編程語言密切相關(guān)。l方法設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)和方法設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、算法設(shè)

21、計(jì)和流程設(shè)計(jì)。流程設(shè)計(jì)?;顒?dòng)圖描述算法 x=(idelta-delta)/(slope-islope); slopeislope 返回點(diǎn)(0,0) slope=islope y=(slope*x)+delta; 返回點(diǎn)(x,y) 細(xì)化設(shè)計(jì)類的操作與屬性 l細(xì)化設(shè)計(jì)類的操作與屬性,依靠順序圖是細(xì)化設(shè)計(jì)類的操作與屬性,依靠順序圖是一個(gè)有效的方法。一個(gè)有效的方法。 用例圖、順序圖、類圖之間關(guān)系順序圖、類圖之間關(guān)系 分析順序圖資金轉(zhuǎn)賬在Servlet和控制之間劃分職責(zé) 設(shè)計(jì)階段的順序圖(細(xì)化操作與屬性)控制類與邊界類的屬性l控制類與邊界類的屬性通常無屬性控制類與邊界類的屬性通常無屬性l控制類有時(shí)需要屬

22、性描述對象的狀態(tài)控制類有時(shí)需要屬性描述對象的狀態(tài)l控制類有時(shí)需要屬性描述類本身的一些性控制類有時(shí)需要屬性描述類本身的一些性質(zhì)質(zhì)描述設(shè)計(jì)類的狀態(tài)l并不需要對每個(gè)設(shè)計(jì)類都描述其狀態(tài)。并不需要對每個(gè)設(shè)計(jì)類都描述其狀態(tài)。l如果某個(gè)類比較復(fù)雜,有多種狀態(tài),當(dāng)接如果某個(gè)類比較復(fù)雜,有多種狀態(tài),當(dāng)接收到一個(gè)消息時(shí),要根據(jù)所處的狀態(tài)來選收到一個(gè)消息時(shí),要根據(jù)所處的狀態(tài)來選擇相應(yīng)的操作行為,對于這樣的類需要描擇相應(yīng)的操作行為,對于這樣的類需要描述其狀態(tài)。述其狀態(tài)。由狀態(tài)圖獲取更多操作分析類Claim_report由狀態(tài)圖獲取更多操作初步精華后的設(shè)計(jì)類Claim_report由狀態(tài)圖獲取更多操作類Claim_re

23、port的狀態(tài)圖由狀態(tài)圖獲取更多屬性由狀態(tài)圖獲取更多操作由狀態(tài)圖獲取更多屬性和操作精化后的類Claim_report定義設(shè)計(jì)類的關(guān)系 l為了確定設(shè)計(jì)類之間的關(guān)系,首先應(yīng)該跟為了確定設(shè)計(jì)類之間的關(guān)系,首先應(yīng)該跟蹤對應(yīng)的分析類之間的關(guān)系。蹤對應(yīng)的分析類之間的關(guān)系。設(shè)計(jì)類之間的關(guān)系l在設(shè)計(jì)類之間的關(guān)系時(shí)還有一些細(xì)節(jié)需要在設(shè)計(jì)類之間的關(guān)系時(shí)還有一些細(xì)節(jié)需要考慮,下面列出這些細(xì)節(jié):考慮,下面列出這些細(xì)節(jié):l確定關(guān)聯(lián)的方向和多重性。確定關(guān)聯(lián)的方向和多重性。l關(guān)系構(gòu)造型。關(guān)系構(gòu)造型。l使用關(guān)聯(lián)類。使用關(guān)聯(lián)類。l設(shè)置限定。設(shè)置限定。1)識(shí)別類之間的關(guān)聯(lián) l如果兩個(gè)對象之間需要進(jìn)行協(xié)作如果兩個(gè)對象之間需要進(jìn)行協(xié)作,則要建則要建立關(guān)聯(lián)關(guān)系。如果協(xié)作只在一個(gè)方向進(jìn)行,立關(guān)聯(lián)關(guān)系。如果協(xié)作只在一個(gè)方向進(jìn)行,則建立單向關(guān)聯(lián)。則建立單向關(guān)聯(lián)。l順序圖也描述了設(shè)計(jì)對象間的相互作用。順序圖也描述了設(shè)計(jì)對象間的相互作用。研究順序圖的消息有助于發(fā)現(xiàn)類之間的關(guān)研究順序圖的消息有助于發(fā)現(xiàn)類之間的關(guān)聯(lián)聯(lián) 順序圖與關(guān)聯(lián)關(guān)系根據(jù)順序圖或協(xié)作圖確定關(guān)聯(lián)關(guān)系根據(jù)順序圖或協(xié)作圖確定關(guān)聯(lián)關(guān)系2)識(shí)別類的泛化關(guān)系l在幾個(gè)類中,如果有分解出的公共部分在幾個(gè)類中,如果有分解出的公共部分l可以把分解出的公共部分放在父層。可以把分解出的公共部分放在父層。識(shí)別類的泛化關(guān)系 持久存儲(chǔ)書刊書刊標(biāo)題借閱預(yù)定借閱者3)

溫馨提示

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

最新文檔

評論

0/150

提交評論