成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

使用UML編寫Java應(yīng)用程序 (2)設(shè)計(jì)

瀏覽:139日期:2024-06-29 11:23:20
內(nèi)容: 出自:yesky 設(shè)計(jì)當(dāng)已經(jīng)考慮了所有的技術(shù)細(xì)節(jié)和限制條件,我們就可以進(jìn)入設(shè)計(jì)階段,設(shè)計(jì)階段需要展開和細(xì)化分析模型。設(shè)計(jì)的目的是為了說明一種可以很容易地翻譯成程序設(shè)計(jì)代碼的工作解決方案。設(shè)計(jì)階段可以分成兩部分:1、結(jié)構(gòu)設(shè)計(jì) 這是非常高級(jí)的設(shè)計(jì),說明在什么地方定義包(子系統(tǒng)),以及包與包之間的相互依賴與通信機(jī)制。自然,我們的目標(biāo)是構(gòu)建一種清晰而又簡(jiǎn)單的體系結(jié)構(gòu),包與包之間的依賴要少,如果可能的話,盡量避免雙向的依賴。 2、詳細(xì)設(shè)計(jì) 所有的類都應(yīng)描述足夠的細(xì)節(jié),來明確規(guī)定誰來編碼這些類。 UML中的動(dòng)態(tài)模型用于示范類的對(duì)象在具體的環(huán)境中的行為。 下面我將詳細(xì)說明。第一節(jié) 結(jié)構(gòu)設(shè)計(jì)一個(gè)設(shè)計(jì)良好的體系結(jié)構(gòu)是開發(fā)一個(gè)可擴(kuò)展、可改變的系統(tǒng)的基礎(chǔ),程序包所需要關(guān)心的是要么處理一個(gè)具體的功能區(qū)域,要么處理一個(gè)具體的技術(shù)區(qū)域。從技術(shù)邏輯中把應(yīng)用程序邏輯(域類)區(qū)分開來是極其重要的,這是為了萬一需要修改程序的某一部分而不會(huì)對(duì)另一部分產(chǎn)生影響:一個(gè)目標(biāo)就是標(biāo)識(shí)并設(shè)定包與包之間(例如“子系統(tǒng))的相互依賴的規(guī)則,并不在包之間創(chuàng)建雙向的依賴(為了避免程序包集成的太過緊密),另一個(gè)目標(biāo)是為了表示標(biāo)準(zhǔn)類庫的需要。現(xiàn)在可用的應(yīng)用程序庫強(qiáng)調(diào)的主要還是在技術(shù)領(lǐng)域,比如用戶界面,數(shù)據(jù)庫或通信機(jī)制等等,但是,我們也同樣盼望出現(xiàn)更多的具體的應(yīng)用程序庫。本案例研究中的程序包或者說是子系統(tǒng)如下:1、用戶界面包(User-Interface) 這些類都是基于 Java AWT包這個(gè)Java中用于編寫用戶界面應(yīng)用程序的一個(gè)標(biāo)準(zhǔn)的類庫。這個(gè)程序包與商業(yè)對(duì)象包(Business Object)協(xié)作,商業(yè)對(duì)象包包含了實(shí)際上用于儲(chǔ)存數(shù)據(jù)用的類,用戶界面包調(diào)用商業(yè)對(duì)象中的方法來取得并向商業(yè)對(duì)象中插入數(shù)據(jù)。2、商業(yè)對(duì)象包(Business Object) 它包括來自分析模型,比如 BorrowerInformation, Title, Item, Loan等等的討論域類。 該設(shè)計(jì)完全地定義了它們的操作并且添加了對(duì)于持久性的支持。 商業(yè)對(duì)象包與數(shù)據(jù)庫包合作,所有的商業(yè)對(duì)象類都必須從數(shù)據(jù)庫包中的 Persistent類繼承而來。3、數(shù)據(jù)庫包 (Database Package) 數(shù)據(jù)庫包給商業(yè)對(duì)象包中的另外一個(gè)類提供服務(wù),以使它們能夠持久的儲(chǔ)存信息。在目前的版本,Persistent類將儲(chǔ)存它的子類對(duì)象到文件系統(tǒng)中的文件中去。4、實(shí)用程序包(Utility Package) 實(shí)用程序包包含用于該系統(tǒng)中的另外一個(gè)包的服務(wù),現(xiàn)在,該包中只有 ObjId類,它用于引用遍及本系統(tǒng)的持久對(duì)象,包括用戶界面,商業(yè)對(duì)象和數(shù)據(jù)庫包。這些程序包的內(nèi)部設(shè)計(jì)見圖 4。圖4解釋 圖書館應(yīng)用程序結(jié)構(gòu)概圖。 這是一張類圖,說明應(yīng)用程序包以及它們之間的關(guān)系。數(shù)據(jù)庫包提供了持久性,公用程序包提供了Object ID類,商業(yè)對(duì)象包包含了討論域類,這點(diǎn)在圖5中將詳細(xì)列出。最后,基于標(biāo)準(zhǔn)Java AWT類庫的UI包調(diào)用商業(yè)對(duì)象中的操作來向它們中間插入數(shù)據(jù)。第二節(jié) 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)描述新的類--在用戶界面和數(shù)據(jù)庫包中的類,以及在本分析中描繪的商業(yè)對(duì)象類以外的人。本類的狀態(tài)和動(dòng)態(tài)圖表使用的是與分析過程中一樣的圖表,但是它們被定義在更加詳細(xì)和更高的技術(shù)層次,分析過程中的使用案例描述用于驗(yàn)證在設(shè)計(jì)階段處理的使用案例,使用序列圖表闡明在系統(tǒng)中,每個(gè)使用案例是如何在技術(shù)上實(shí)現(xiàn)的。數(shù)據(jù)庫包 應(yīng)用程序必須有持久儲(chǔ)存對(duì)象,所以必須添加一個(gè)數(shù)據(jù)庫層來提供這個(gè)服務(wù),為了簡(jiǎn)單起見,我們把對(duì)象作為文件儲(chǔ)存在磁盤上,關(guān)于存儲(chǔ)器的細(xì)節(jié)就不需要被應(yīng)用程序所知了,它調(diào)用通用操作,比如 store()、update()、delete()和 find()等等,這些都是一個(gè)調(diào)用 Persistent的類的一部分,所有的類都需要繼承 Persistent(持久對(duì)象)。持久性處理中的一個(gè)重要的因素就是 ObjId類,它的對(duì)象用于引用任何系統(tǒng)中的持久對(duì)象 (無論對(duì)象是在磁盤上還是已經(jīng)被讀入應(yīng)用程序中了 )。 ObjId是Object Identity的簡(jiǎn)寫,是一種熟知的技術(shù),用于處理應(yīng)用程序中的對(duì)象引用。 通過使用對(duì)象標(biāo)識(shí),一個(gè)對(duì)象標(biāo)識(shí)號(hào)就能被傳遞到 Persistent.getObject ( )操作,然后該對(duì)象將從持久存儲(chǔ)器中取回。 通常,這要通過每個(gè)持久類中的 getObject操作來完成,它還要執(zhí)行必要的類型檢查和轉(zhuǎn)換。對(duì)象標(biāo)識(shí)號(hào)還可以很容易地作為操作的參數(shù)被傳遞 (例如,一個(gè)尋找具體對(duì)象的搜索窗口可以通過對(duì)象標(biāo)識(shí)號(hào)傳遞它的結(jié)果到另外一個(gè)窗口 )。ObjId標(biāo)識(shí)系統(tǒng)(用戶界面、商業(yè)對(duì)象和數(shù)據(jù)庫)中所有的包使用的一個(gè)常規(guī)類,因此它在設(shè)計(jì)階段就被放進(jìn)實(shí)用程序包中而不是數(shù)據(jù)庫包中。Persistent類的當(dāng)前實(shí)現(xiàn)還可以不夠完善,它的最終目標(biāo)是可以很容易的改變持久存儲(chǔ)器的實(shí)現(xiàn),目前的替代的辦法是把對(duì)象出存在關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫中,也可以使用Java中的持久對(duì)象支持儲(chǔ)存它們。商業(yè)對(duì)象包 在設(shè)計(jì)階段中的商業(yè)對(duì)象包基于分析過程中相應(yīng)的包——討論域類。類以及它們的相互關(guān)系和行為沒有變,但是類被描述的更加詳細(xì),包括了它們的相互關(guān)系和行為如何實(shí)現(xiàn)。一些操作已經(jīng)被翻譯成好幾個(gè)設(shè)計(jì)模型中的操作,一些還被改了名稱,這都是很正常的,因?yàn)榉治鲋皇敲總€(gè)類的能力的描繪,而設(shè)計(jì)則是系統(tǒng)詳細(xì)的描述,因此設(shè)計(jì)模型中的所有的操作都必須有定義好的特征和返回值,注意,下面給出了設(shè)計(jì)與分析的不同。圖5解釋 商業(yè)對(duì)象設(shè)計(jì)。 這張圖表充實(shí)了商業(yè)對(duì)象程序包的各種不同的類的設(shè)計(jì)。接口更加精確,選擇了屬性的數(shù)據(jù)類型。系統(tǒng)的當(dāng)前版本不必檢查一本書是否及時(shí)歸還,也不必處理預(yù)借書籍的訂單,因此Loan和 Reservation類的日期屬性就沒有實(shí)現(xiàn)。 雜志和書的處理過程是完全相同的,除了借期的不同,而且它還不用處理。 在分析中, Magazine和 Book Title子類已經(jīng)被認(rèn)為不必要的并且在 Title類中只有一個(gè)類型屬性指定該書名是否指出一本書或雜志。在以后的應(yīng)用程序版本中,如果認(rèn)為有必要的話,這兩個(gè)簡(jiǎn)化都可以刪除。 分析過程中的狀態(tài)圖表在設(shè)計(jì)階段又被細(xì)化了,顯示在工作系統(tǒng)中狀態(tài)如何被表示以及被處理。 Title類的設(shè)計(jì)狀態(tài)圖表如圖 6。 其他對(duì)象可以通過調(diào)用 addReservation ( )和 removeReservation ( )操作來改變 Title的狀態(tài),就像這張圖表中所顯示的那樣。圖6解釋 設(shè)計(jì)Title的狀態(tài)圖 用戶界面包 用戶界面包總是在其他包之前,在系統(tǒng)中,它給用戶提供服務(wù)和信息,顯然,這個(gè)包基于標(biāo)準(zhǔn)的 Java AWT ( Abstract Window Toolkit )類。設(shè)計(jì)模型中的動(dòng)態(tài)模型已經(jīng)被分配到 GUI包中,因?yàn)樗械呐c用戶的交互作用都是通過用戶界面開始的, 此外,我們還選擇序列圖表來說明動(dòng)態(tài)模型,本使用案例的設(shè)計(jì)模型的實(shí)現(xiàn)都是用細(xì)節(jié)描述的,包括類中的實(shí)際的操作。序列圖表實(shí)際上是以一系列迭代的形式創(chuàng)建的。在實(shí)現(xiàn)(即編碼)階段更多的細(xì)節(jié)上的發(fā)掘會(huì)產(chǎn)生更進(jìn)一步的迭代。 圖 7表明 Add Title的結(jié)果設(shè)計(jì)序列圖表。圖7解釋 Add Title的序列圖 我們還可以使用協(xié)作圖表代替序列圖表,象圖 8。圖8解釋 Add Title的協(xié)作圖。第三節(jié) 用戶界面設(shè)計(jì)在設(shè)計(jì)階段,我們使用一個(gè)特定活動(dòng)創(chuàng)建用戶界面。圖書館應(yīng)用程序中的用戶界面是基于本使用案例的,并且已經(jīng)被分成下列部分,在主窗口上,它的每個(gè)部分都已經(jīng)被給予一個(gè)單獨(dú)的菜單欄:1、功能 本系統(tǒng)中的主要功能的窗口就是用來借書、還書以及與借書籍的登記工作等。 2、信息 本系統(tǒng)中的查看信息的窗口就是用來收集書名和借書者的信息。 3、維護(hù) 維護(hù)本系統(tǒng)的窗口用來添加、更新和刪除書名、借書者以及書籍。 圖9 是一個(gè)用戶界面包中的類圖的例子。圖9解釋 功能類圖模型。一般情況下,每個(gè)窗口提供一個(gè)系統(tǒng)中的服務(wù)并且映射到一個(gè)使用案例 (即使并不是所有的用戶界面都必須從一個(gè)使用案例中映射而來), 創(chuàng)建一個(gè)成功的用戶界面超出本文討論的范圍,讀者朋友請(qǐng)參閱文后提供的代碼。我以后還會(huì)專門輯文探討這個(gè)問題。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
97精品国产露脸对白| 午夜精品一区二区三区免费视频| 亚洲精品一二三| 欧美激情综合| 日韩视频免费观看高清在线视频| 蜜桃一区二区三区四区| 亚洲视频播放| 亚洲人成精品久久久久久| 黄色精品免费| 国产亚洲制服色| 91网页版在线| 国产午夜久久久久| 国产不卡视频在线播放| 欧美四级电影在线观看| 视频一区视频二区中文| 性欧美xxxx大乳国产app| 亚洲一线二线三线久久久| 亚洲国产欧美国产综合一区| 成人欧美一区二区三区黑人麻豆 | fc2成人免费人成在线观看播放| 欧美一二三区在线| 国产99精品在线观看| 日韩一区二区在线看片| 不卡一区二区中文字幕| 国产亚洲欧美日韩在线一区| 欧美日韩一区在线观看视频| 国产精品视频yy9299一区| 国产精品videosex极品| 亚洲欧洲av色图| 亚洲美女少妇无套啪啪呻吟| 一区二区三区在线视频观看58| 一本久久知道综合久久| 亚洲美女精品一区| 国产日韩欧美一区二区三区在线观看| 亚洲男人天堂av网| 国产精品久久九九| 午夜精品在线视频一区| 欧美在线免费播放| 精品一区二区三区视频| 538prom精品视频线放| 成人激情动漫在线观看| 久久精品视频免费| 一区免费在线| 亚洲国产精品久久不卡毛片| 久久伊人亚洲| 久久精品国产精品亚洲红杏| 欧美日本在线观看| 高潮精品一区videoshd| 久久久精品一品道一区| 在线观看一区| 日韩精品免费专区| 欧美日韩国产高清一区二区三区| 国产91精品一区二区麻豆亚洲| 久久精品视频网| 国产欧美激情| 久久精品99国产国产精| 欧美成人乱码一区二区三区| 欧美精品日本| 亚洲一级电影视频| 欧美亚一区二区| 国产91精品在线观看| 国产精品全国免费观看高清 | 日韩欧美一区在线| 午夜精品久久久久99热蜜桃导演| 一区二区三区在线观看网站| 色先锋资源久久综合| 国产成人亚洲综合a∨婷婷图片| 中文字幕二三区不卡| 国产精品资源| 久久成人av少妇免费| 国产婷婷色一区二区三区在线| 国产精品美女黄网| 韩国v欧美v日本v亚洲v| 久久综合网色—综合色88| 亚洲美女黄色| 精品一区二区三区欧美| 国产夜色精品一区二区av| 亚洲一区日韩在线| 国产美女娇喘av呻吟久久| 国产欧美日韩在线视频| 久久婷婷影院| 波多野结衣中文一区| 一区二区欧美国产| 91精品久久久久久久久99蜜臂| 欧美理论在线| 日韩va欧美va亚洲va久久| 欧美成人综合网站| 国产三级精品在线不卡| 国产一区福利在线| 中文字幕一区二| 欧美日韩免费一区二区三区视频| 欧美日韩视频在线一区二区观看视频 | 北条麻妃一区二区三区| 视频一区中文字幕国产| 国产女同互慰高潮91漫画| 91黄色免费观看| 91蝌蚪porny| 青青草国产精品亚洲专区无| 国产免费成人在线视频| 在线一区二区视频| 欧美精品一区二区视频| 美女www一区二区| 国产精品色一区二区三区| 精品视频在线看| 一区免费视频| 成人网在线免费视频| 亚洲国产日韩综合久久精品| 在线精品在线| 亚洲日本乱码在线观看| 美女图片一区二区| 99视频有精品| 青青草91视频| 中文幕一区二区三区久久蜜桃| 欧美性生活一区| 亚洲国产日韩在线| 国产精品69毛片高清亚洲| 一区二区三区免费| 精品人伦一区二区色婷婷| 一本大道久久a久久精品综合| 欧美精品一区二区三区在线看午夜| 九色综合狠狠综合久久| 亚洲欧美日韩国产一区二区三区 | 久久性天堂网| 国产自产在线视频一区| 国产成人午夜电影网| 亚洲123区在线观看| 欧美激情中文字幕| 51久久夜色精品国产麻豆| 久久激情中文| 亚洲香蕉视频| 99精品黄色片免费大全| 国产永久精品大片wwwapp| 午夜精品aaa| 亚洲天堂免费看| 国产亚洲美州欧州综合国| 制服.丝袜.亚洲.中文.综合| 噜噜噜91成人网| 亚洲激情黄色| 你懂的国产精品| 国产精品白丝av| 日本va欧美va瓶| 一区二区三区色| 国产精品毛片久久久久久| 欧美xxxx老人做受| 777奇米成人网| 在线亚洲一区观看| 亚洲综合欧美日韩| 亚洲视频欧美在线| 91性感美女视频| 国产999精品久久久久久绿帽| 狂野欧美性猛交blacked| 亚洲一线二线三线久久久| 中文字幕亚洲一区二区va在线| 久久婷婷国产综合国色天香| 欧美蜜桃一区二区三区| 午夜在线视频一区二区区别| 亚洲第一伊人| 合欧美一区二区三区| 成人小视频在线| 国产精品99久久久| 国产在线一区二区综合免费视频| 国产精品美女一区二区在线观看| 欧美一级艳片视频免费观看| 欧美日韩电影一区| 欧美亚一区二区| 欧洲亚洲精品在线| 欧美做爰猛烈大尺度电影无法无天| 久久久精品国产一区二区三区| 国产精品视频福利| av成人免费观看| 亚洲国产日韩欧美| 亚洲激情成人| 国产视频在线观看一区| 在线观看成人一级片| 亚洲小说区图片区| 在线观看成人av| 日韩天天综合| 日韩视频中文| 亚洲一区二区三区午夜| 免费久久99精品国产自| 先锋影音国产精品| 久久国产主播| 色94色欧美sute亚洲13| 日本韩国视频一区二区| 色八戒一区二区三区| 在线观看国产精品网站| 欧美色视频在线观看| 欧美人xxxx| 日韩一区国产二区欧美三区| 欧美成人官网二区| 久久久久久亚洲综合影院红桃| 久久久一区二区三区| 国产免费观看久久| 亚洲欧洲日韩av| 一区二区三区丝袜| 欧美aaaaaa午夜精品| 国产乱码精品一区二区三区五月婷| 国产v日产∨综合v精品视频| 99热99精品| 合欧美一区二区三区|