軟件體系結構設計模式實驗報告_第1頁
軟件體系結構設計模式實驗報告_第2頁
軟件體系結構設計模式實驗報告_第3頁
軟件體系結構設計模式實驗報告_第4頁
軟件體系結構設計模式實驗報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件體系結構設計模式實驗報告學生姓名:所在學院:學生學號:學生班級:指導教師:完成日期:

一、實驗目的熟練利用PowerDesigner和任意一種面向對象編程語言實現幾種常見的設計模式,包括組合模式、外觀模式、代理模式、觀看者模式和策略模式,明白得每一種設計模式的模式動機,把握模式結構,學習如何利用代碼實現這些模式,并學會分析這些模式的利用成效。二、實驗內容使用PowerDesigner和任意一種面向對象編程語言實現組合模式、外觀模式、代理模式、觀看者模式和策略模式,包括依如實例繪制模式結構圖、編寫模式實例實現代碼,運行并測試模式實例代碼。(1)組合模式利用組合模式設計一個殺毒軟件(AntiVirus)的框架,該軟件既能夠對某個文件夾(Folder)殺毒,也能夠對某個指定的文件(File)進行殺毒,文件種類包括文本文件TextFile、圖片文件ImageFile、視頻文件VideoFile。繪制類圖并編程模擬實現。(2)組合模式某教育機構組織結構如以下圖所示:在該教育機構的OA系統中能夠給各級辦公室下發(fā)公函,現采納組合模式設計該機構的組織結構,繪制相應的類圖并編程模擬實現,在客戶端代碼中模擬下發(fā)公函。(注:能夠概念一個辦公室類為抽象葉子構件類,再將教務辦公室和行政辦公室作為其子類;能夠概念一個教學機構類為抽象容器構件類,將總部、分校和教學點作為其子類。)(3)外觀模式某系統需要提供一個文件加密模塊,加密流程包括三個操作,別離是讀取源文件、加密、保留加密以后的文件。讀取文件和保留文件利用流來實現,這三個操作相對獨立,其業(yè)務代碼封裝在三個不同的類中。此刻需要提供一個統一的加密外觀類,用戶能夠直接利用該加密外觀類完成文件的讀取、加密和保留三個操作,而不需要與每一個類進行交互,利用外觀模式設計該加密模塊,要求編程模擬實現。參考類圖如下:(4)外觀模式在電腦主機(Mainframe)中,只需要按下主機的開機按鈕(on()),即可挪用其他硬件設備和軟件的啟動方式,如內存(Memory)的自檢(check()),CPU的運行(run()),硬盤(HardDisk)的讀取(read()),操作系統(OS)的載入(load())等,若是某一進程發(fā)生錯誤那么電腦啟動失敗。利用外觀模式模擬該進程,繪制類圖并編程模擬實現。(5)代理模式應用軟件所提供的桌面快捷方式是快速啟動應用程序的代理,桌面快捷方式一樣利用一張小圖片來表示(Picture),通過挪用快捷方式的run()方式將挪用應用軟件(Application)的run()方式。利用代理模式模擬該進程,繪制類圖并編程模擬實現。(6)代理模式在某應用軟件中需要記錄業(yè)務方式的挪用日記,在不修改現有業(yè)務類的基礎上為每一個類提供一個日記記錄代理類,在代理類中輸出日記,如在業(yè)務方式method()挪用之前輸出“方式method()被挪用,調歷時刻為2020-10-1010:10:10”,挪用以后若是沒有拋異樣那么輸出“方式method()成功挪用”,不然輸出“方式method()挪用失敗”(7)觀看者模式某在線股票軟件需要提供如下功能:當股票購買者所購買的某支股票價錢轉變幅度達到5%時,系統將自動發(fā)送通知(包括新價錢)給購買該股票的股民?,F利用觀看者模式設計該系統,繪制類圖并編程模擬實現。(8)觀看者模式某聯機射擊游戲能夠實時顯示隊友和仇敵的存活信息,若是有隊友或仇敵陣亡,所有在線游戲玩家將收到相應的消息,現提供一個統一的中央角色操縱類(CenterController)來實現消息傳遞機制,在中央角色操縱器中概念一個集合用于存儲所有的用戶信息,若是某用戶角色(Player)陣亡,那么挪用CenterController的通知方式notify(),該方式將遍歷用戶信息集合,挪用每一個Player的display()方式顯示陣亡信息,若是是隊友陣亡,提示信息為:隊友****陣亡,我方隊員尚有**人;若是是仇敵陣亡,提示信息為:仇敵****陣亡,敵方隊員尚有**人。在挪用notify()方式通知其他用戶的同時,陣亡的角色對象將從用戶信息集合中刪除?,F利用觀看者模式設計該消息傳遞模塊,繪制類圖并編程模擬實現。(提示:CenterController充當觀看目標,Player充當觀看者,Player的die()方式執(zhí)行時將挪用CenterController的notify()方式,在notify()方式中挪用其他Player對象的display()方式,并挪用detach()方式刪除陣亡的Player對象;能夠概念兩個角色集合,一個用于存儲甲方隊員信息,一個用于乙方隊員信息;所有方式的參數依如實際需要確信)(9)策略模式設計一個網上書店,該系統中所有的運算機類圖書(ComputerBook)每本都有10%的折扣,所有的語言類圖書(LanguageBook)每本都有2元的折扣,小說類圖書(NovelBook)每100元有10元的折扣?,F利用策略模式來設計該系統,繪制類圖并編程模擬實現。(10)策略模式某系統需要對重要數據(如用戶密碼)進行加密,并提供了幾種加密方案(如凱撒加密、DES加密等),對該加密模塊進行設計,使得用戶能夠動態(tài)選擇加密方式。要求繪制類圖并編程模擬實現。三、實驗要求1.正確無誤繪制組合模式、外觀模式、代理模式、觀看者模式和策略模式實例的模式結構圖;2.利用任意一種面向對象編程語言實現組合模式、外觀模式、代理模式、觀看者模式和策略模式實例,代碼運行正確無誤。四、實驗步驟1.熟悉PowerDesigner15的經常使用功能;2.利用PowerDesigner繪制組合模式實例結構圖并用面向對象編程語言實現該模式實例;3.利用PowerDesigner繪制外觀模式實例結構圖并用面向對象編程語言實現該模式實例;4.利用PowerDesigner繪制代理模式實例結構圖并用面向對象編程語言實現該模式實例;5.利用PowerDesigner繪制觀看者模式實例結構圖并用面向對象編程語言實現該模式實例;6.利用PowerDesigner繪制策略模式結構圖并用面向對象編程語言實現該模式。五、實驗結果(1)組合模式1:類圖: 結果:(2)組合模式2:類圖:結果:(3)外觀模式1類圖:結果:(4)外觀模式2類圖:結果:(5)代理模式1類圖:結果:(6)代理模式2類圖:結果:(7)觀看者模式1類圖:結果:(8)觀看者模式1類圖:結果:(9)策略模式1類圖:結果:(10)策略模式2類圖:結果:六、實驗總結通過一段時刻的對設計模式的學習和練習,我深刻的意識到了一個好的軟件往往是設計模式巧妙運用的結果。要學好設計模式,就必需

溫馨提示

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

最新文檔

評論

0/150

提交評論