仲愷軟體設計模式實驗指導書

2022-11-10 18:54:02 字數 6378 閱讀 2274

設計模式實驗指導

一、實驗目的

使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現幾種常用的設計模式,加深對這些模式的理解,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式等12種模式。

二、實驗內容

根據以下的文件描述要求,使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現以下設計模式,包括根據例項繪製相應的模式結構圖、編寫模式實現**,執行並測試模式例項**。

(1)、簡單工廠模式

使用簡單工廠模式模擬女媧(nvwa)造人(person),如果傳入引數m,則返回乙個man物件,如果傳入引數w,則返回乙個woman物件,請實現該場景。現需要增加乙個新的robot類,如果傳入引數r,則返回乙個robot物件,對**進行修改並注意女媧的變化。

(2)、工廠方法模式

海爾工廠(haier)生產海爾空調(haieraircondition),美的工廠(midea)生產美的空調(mideaaircondition)。使用工廠方法模式描述該場景,繪製類圖並程式設計實現。

(3)、抽象工程模式

電腦配件生產工廠生產記憶體、cpu等硬體裝置,這些記憶體、cpu的品牌、型號並不一定相同,根據下面的「產品等級結構-產品族」示意圖,使用抽象工廠模式實現電腦配件生產過程並繪製相應的類圖,繪製類圖並程式設計實現。

(4)、單例模式

用懶漢式單例實現在某系統執行時,其登入介面類loginform只能夠彈出乙個,如果第二次例項化該類則提示「程式已執行」。繪製類圖並程式設計實現。

提示:不要求做介面,用類模擬介面就可以了。(5)、組合模式

使用組合模式設計乙個防毒軟體(antivirus)的框架,該軟體既可以對某個資料夾(folder)防毒,也可以對某個指定的檔案(file)進行防毒,檔案種類包括文字檔案textfile、**檔案imagefile、音訊**檔案mediafile。繪製類圖並程式設計實現。

(6)、介面卡模式

現有乙個介面dataoperation定義了排序方法sort(int)和查詢方法search(int,int),已知類quicksort的quicksort(int)方法實現了快速排序演算法,類binarysearch的binarysearch(int, int)方法實現了二分查詢演算法。現使用介面卡模式設計乙個系統,在不修改源**的情況下將類quicksort和類binarysearch的方法適配到

dataoperation介面中。繪製類圖並程式設計實現。(要求實現快速排序和二分查詢)

(7)、裝飾模式

某圖書管理系統中,書籍類(book)具有借書方法borrowbook()和還書方法returnbook()。現需要動態給書籍物件新增凍結方法freeze()和遺失方法lose()。使用裝飾模式設計該系統,繪製類圖並程式設計實現。

(8)、外觀模式

在電腦主機(mainframe)中,只需要按下主機的開機按鈕(on()),即可呼叫其他硬

件裝置和軟體的啟動方法,如記憶體(memory)的自檢(check()),cpu的執行(run()),硬碟(harddisk)的讀取(read()),作業系統(os)的載入(load())等,如果某一過程發生錯誤則電腦啟動失敗。使用外觀模式模擬該過程,繪製類圖並程式設計實現。

(9)、命令模式

某軟體公司欲開發乙個基於windows平台的公告板系統。系統提供乙個主選單(menu),在主選單中包含了一些選單項(menuitem),可以通過menu類的

addmenuitem()方法增加選單項。選單項的主要方法是click(),每乙個選單項包含乙個抽象命令類,具體命令類包括opencommand(開啟命令),createcommand(新建命令),editcommand(編輯命令)等,命令類具有乙個execute()方法,用於呼叫公告板系統介面類(boardscreen)的open()、create()、edit()等方法。現使用命令模式設計該系統,使得menuitem類與boardscreen類的耦合度降低,繪製類圖並程式設計實現。

(10)、

迭代器模式

某商品管理系統的商品名稱儲存在乙個字串陣列中,現需要自定義乙個雙向迭代器(myiterator)實現對該商品名稱陣列的雙向(前向和後向)遍歷。繪製類圖並程式設計實現(設計方案必須符合dip)。

(11)、

觀察者模式

某****軟體需要提供如下功能:當**購買者所購買的某支****變化幅度達到5%時,系統將自動傳送通知(包括新**)給購買該**的股民。現使用觀察者模式設計該系統,繪製類圖並程式設計實現。

(12)、

策略模式

設計乙個網上書店,該系統中所有的計算機類圖書(computerbook)每本都有10%的折扣,所有的語言類圖書(languagebook)每本都有2元的折扣,**類圖書(novelbook)每100元有10元的折扣。現使用策略模式來設計該系統,繪製類圖並程式設計實現。

三、實驗要求

1.正確無誤繪製簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式的模式結構圖;

2.使用任意一種物件導向程式設計語言實現簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式,**執行正確無誤。

四、實驗步驟

第一次實驗課完成:

使用rose或者visio繪製簡單工廠模式、工廠方法模式、抽象工廠模式模式結構圖並用物件導向程式設計語言實現該模式;第二次實驗課完成:

使用rose或者visio繪製單例模式、介面卡模式、組合模式模式結構圖並用物件導向程式設計語言實現該模式;第三次實驗課完成:

使用rose或者visio繪製裝飾模式、外觀模式、、命令模式模式結構圖並用物件導向程式設計語言實現該模式;第四次實驗課完成:

使用rose或者visio繪製迭代器模式、觀察者模式、策略模式模式結構圖並用物件導向程式設計語言實現該模式;

五、實驗報告要求

提供簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式裝飾模式結構圖及實現**;

仲愷農業工程學院實驗報告

學號:姓名:

課程名稱:軟體設計模式班級:

第一次實驗報告

一、實驗目的

使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現幾種常用的設計模式,加深對這些模式的理解,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式等12種模式。

二、實驗內容

(1)、簡單工廠模式

使用簡單工廠模式模擬女媧(nvwa)造人(person),如果傳入引數m,則返回乙個man物件,如果傳入引數w,則返回乙個woman物件,請實現該場景。現需要增加乙個新的robot類,如果傳入引數r,則返回乙個robot物件,對**進行修改並注意女媧的變化。

(2)、工廠方法模式

海爾工廠(haier)生產海爾空調(haieraircondition),美的工廠(midea)生產美的空調(mideaaircondition)。使用工廠方法模式描述該場景,繪製類圖並程式設計實現。

(3)、抽象工程模式

電腦配件生產工廠生產記憶體、cpu等硬體裝置,這些記憶體、cpu的品牌、型號並不一定相同,根據下面的「產品等級結構-產品族」示意圖,使用抽象工廠模式實現電腦配件生產過程並繪製相應的類圖,繪製類圖並程式設計實現。

三、實驗要求

使用rose或者visio繪製簡單工廠模式、工廠方法模式、抽象工廠模式模式結

構圖並用物件導向程式設計語言實現該模式;

四、實驗結果

仲愷農業工程學院實驗報告

學號:姓名:

課程名稱:軟體設計模式班級:

第二次實驗報告

一、實驗目的

使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現幾種常用的設計模式,加深對這些模式的理解,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式等12種模式。

二、實驗內容

(1)、單例模式

用懶漢式單例實現在某系統執行時,其登入介面類loginform只能夠彈出乙個,如果第二次例項化該類則提示「程式已執行」。繪製類圖並程式設計實現。

提示:不要求做介面,用類模擬介面就可以了。(2)、組合模式

使用組合模式設計乙個防毒軟體(antivirus)的框架,該軟體既可以對某個資料夾(folder)防毒,也可以對某個指定的檔案(file)進行防毒,檔案種類包括文字檔案textfile、**檔案imagefile、音訊**檔案mediafile。繪製類圖並程式設計實現。

(3)、介面卡模式

現有乙個介面dataoperation定義了排序方法sort(int)和查詢方法search(int,int),已知類quicksort的quicksort(int)方法實現了快速排序演算法,類binarysearch的binarysearch(int, int)方法實現了二分查詢演算法。現使用介面卡模式設計乙個系統,在不修改源**的情況下將類quicksort和類binarysearch的方法適配到

dataoperation介面中。繪製類圖並程式設計實現。(要求實現快速排序和二分查詢)

三、實驗要求

使用rose或者visio繪製單例模式、介面卡模式、組合模式模式結構圖並用物件導向程式設計語言實現該模式;

四、實驗結果

仲愷農業工程學院實驗報告

學號:姓名:

課程名稱:軟體設計模式班級:

第三次實驗報告

一、實驗目的

使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現幾種常用的設計模式,加深對這些模式的理解,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式等12種模式。

二、實驗內容

(1)、裝飾模式

某圖書管理系統中,書籍類(book)具有借書方法borrowbook()和還書方法returnbook()。現需要動態給書籍物件新增凍結方法freeze()和遺失方法lose()。使用裝飾模式設計該系統,繪製類圖並程式設計實現。

(2)、外觀模式

在電腦主機(mainframe)中,只需要按下主機的開機按鈕(on()),即可呼叫其他硬體裝置和軟體的啟動方法,如記憶體(memory)的自檢(check()),cpu的執行(run()),硬碟(harddisk)的讀取(read()),作業系統(os)的載入(load())等,如果某一過程發生錯誤則電腦啟動失敗。使用外觀模式模擬該過程,繪製類圖並程式設計實現。

(3)、命令模式

某軟體公司欲開發乙個基於windows平台的公告板系統。系統提供乙個主選單(menu),在主選單中包含了一些選單項(menuitem),可以通過menu類的

addmenuitem()方法增加選單項。選單項的主要方法是click(),每乙個選單項包含乙個抽象命令類,具體命令類包括opencommand(開啟命令),createcommand(新建命令),editcommand(編輯命令)等,命令類具有乙個execute()方法,用於呼叫公告板系統介面類(boardscreen)的open()、create()、edit()等方法。現使用命令模式設計該

系統,使得menuitem類與boardscreen類的耦合度降低,繪製類圖並程式設計實現。

三、實驗要求

使用rose或者visio繪製裝飾模式、外觀模式、命令模式模式結構圖並用物件導向程式設計語言實現該模式;

四、實驗結果

仲愷農業工程學院實驗報告

學號:姓名:

課程名稱:軟體設計模式班級:

第四次實驗報告

一、實驗目的

使用合理的uml建模工具(rose或者visio)和任意一種物件導向程式設計語言實現幾種常用的設計模式,加深對這些模式的理解,包括簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、介面卡模式、組合模式、裝飾模式、外觀模式、、命令模式、迭代器模式、觀察者模式、策略模式等12種模式。

二、實驗內容

(1)、迭代器模式

某商品管理系統的商品名稱儲存在乙個字串陣列中,現需要自定義乙個雙向迭代器(myiterator)實現對該商品名稱陣列的雙向(前向和後向)遍歷。繪製類圖並程式設計實現(設計方案必須符合dip)。

(2)、觀察者模式

某****軟體需要提供如下功能:當**購買者所購買的某支****變化幅度達到5%時,系統將自動傳送通知(包括新**)給購買該**的股民。現使用觀察者模式設計該系統,繪製類圖並程式設計實現。

(3)、策略模式

設計乙個網上書店,該系統中所有的計算機類圖書(computerbook)每本都有10%的折扣,所有的語言類圖書(languagebook)每本都有2元的折扣,**類圖書(novelbook)每100元有10元的折扣。現使用策略模式來設計該系統,繪製類圖並程式設計實現。

三、實驗要求

使用rose或者visio繪製迭代器模式、觀察者模式、策略模式模式結構圖並用物件導向程式設計語言實現該模式;

四、實驗結果

軟體需求分析實驗指導書

軟體需求分析 實驗指導書 軟體工程系 目錄實驗1 軟體功能描述與確認 驗證性實驗 4 一 實驗目的與要求 4 二 實驗環境 4 三 實驗預習與準備 4 四 實驗內容和步驟 4 五 實驗報告要求 5 六 實驗注意事項 5 七 思考題 5 實驗2 從程式設計看軟體需求 綜合設計性實驗 6 一 實驗目的與...

軟體工程實驗指導書

前言軟體工程實驗是為計算機相關專業本科 軟體工程 課程配套設定的,是 軟體工程 課程講授中乙個重要的 不可或缺的實踐環節。其目的是使學生能夠針對具體軟體工程專案,全面掌握軟體工程管理 軟體需求分析 軟體初步設計 軟體詳細設計 軟體測試等階段的方法和技術,通過該課程設計使學生進一步理解和掌握軟體開發模...

模式識別實驗指導書

實驗一感知器準則演算法實驗 一 實驗目的 貝葉斯分類方法是基於後驗概率的大小進行分類的方法,有時需要進行概率密度函式的估計,而概率密度函式的估計通常需要大量樣本才能進行,隨著特徵空間維數的增加,這種估計所需要的樣本數急劇增加,使計算量大增。在實際問題中,人們可以不去估計概率密度,而直接通過與樣本和類...