一、實(shí)驗(yàn)?zāi)康?/h3>
1.結(jié)合實(shí)例,熟練繪制常見(jiàn)的結(jié)構(gòu)型設(shè)計(jì)模式結(jié)構(gòu)圖。
2.結(jié)合實(shí)例,熟練使用任意一種面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)常見(jiàn)的結(jié)構(gòu)型設(shè)計(jì)模式。
3.通過(guò)本實(shí)驗(yàn),理解每一種結(jié)構(gòu)型設(shè)計(jì)模式的模式動(dòng)機(jī),掌握模式結(jié)構(gòu),學(xué)習(xí)如何使用代碼實(shí)現(xiàn)這些設(shè)計(jì)模式。
二、實(shí)驗(yàn)內(nèi)容
1.現(xiàn)有一個(gè)接口DataOperation定義了排序方法sort(int[])和查找方法search(int[]),int),已知類(lèi)QuickSort的quickSort(int[])方法實(shí)現(xiàn)了快速排序算法,類(lèi)BinarySearch的binarySearch(int[],int)方法實(shí)現(xiàn)了二分查找算法?,F(xiàn)使用適配器模式設(shè)計(jì)一個(gè)系統(tǒng),在不修改源代碼的情況下將類(lèi)QuickSort和類(lèi)BinarySearch的方法,適配到DataOperation接口中。繪制類(lèi)圖并編程實(shí)現(xiàn)(要求實(shí)現(xiàn)快速排序和二分查找)。
2. 海爾(Haier)、TCL、海信(Hisense)都是家電制造商,它們都生產(chǎn)電視機(jī)(Television)、空調(diào)(Air Conditioner)、冰箱(Refrigeratory)。現(xiàn)需要設(shè)計(jì)一個(gè)系統(tǒng),描述這些家電制造商以及它們所制造的電器,要求繪制類(lèi)圖并用代碼模擬實(shí)現(xiàn)。
3. 某教育機(jī)構(gòu)組織結(jié)構(gòu)如下圖所示:
在該教育機(jī)構(gòu)的OA系統(tǒng)中可以給各級(jí)辦公室下發(fā)公文,現(xiàn)采用組合模式設(shè)計(jì)該機(jī)構(gòu)的組織結(jié)構(gòu),繪制相應(yīng)的類(lèi)圖并編程模擬實(shí)現(xiàn),在客戶(hù)端代碼中模擬下發(fā)公文。
4. 在電腦主機(jī)(Mainframe)中,只需要按下主機(jī)的開(kāi)機(jī)按鈕(on()),即可調(diào)用其他硬件設(shè)備和軟件的啟動(dòng)方法,如內(nèi)存(Memory)的自檢(check()),CPU的運(yùn)行(run()),硬盤(pán)(HardDisk)的讀取(read()),操作系統(tǒng)(OS)的載入(load())等,如果某一過(guò)程發(fā)生錯(cuò)誤則電腦啟動(dòng)失敗。使用外觀模式模擬該過(guò)程,繪制類(lèi)圖并編程模擬實(shí)現(xiàn)。
5. 應(yīng)用軟件所提供的桌面快捷方式是快速啟動(dòng)應(yīng)用程序的代理,桌面快捷方式一般使用一張小圖片來(lái)表示(Picture),通過(guò)調(diào)用快捷方式的run()方法將調(diào)用應(yīng)用軟件(Application)的run()方法。使用代理模式模擬該過(guò)程,繪制類(lèi)圖并編程模擬實(shí)現(xiàn)。
6. 某移動(dòng)社交軟件欲增加一個(gè)群組(Group)功能。通過(guò)設(shè)置,用戶(hù)可以將自己的動(dòng)態(tài)信息,包括最新動(dòng)態(tài)、新上傳的視頻以及分享的鏈接等,分享給某個(gè)特定的成員(Member),也可以分享給某個(gè)群組中的所有成員;用戶(hù)可以將成員添加至某個(gè)指定的群組;此外,還允許用戶(hù)在一個(gè)群組中添加子群組,以便更加靈活地實(shí)現(xiàn)面向特定人群的信息共享。現(xiàn)采用組合模式來(lái)設(shè)計(jì)該群組功能,結(jié)合場(chǎng)景繪制相應(yīng)的結(jié)構(gòu)圖并編程模擬實(shí)現(xiàn)(類(lèi)名、方法名和屬性名可自行定義)。
7. 某軟件公司為新開(kāi)發(fā)的智能手機(jī)控制與管理軟件提供了一鍵備份功能,通過(guò)該功能可以將原本存儲(chǔ)在手機(jī)中的通信錄、短信、照片、歌曲等資料一次性全部拷貝到移動(dòng)存儲(chǔ)介質(zhì)(例如MMC卡或SD卡)中。在實(shí)現(xiàn)過(guò)程中需要與多個(gè)已有的類(lèi)進(jìn)行交互,例如通訊錄管理類(lèi)、短信管理類(lèi)等,為了降低系統(tǒng)的耦合度,試使用外觀模式來(lái)設(shè)計(jì)并編程模擬實(shí)現(xiàn)該一鍵備份功能。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-435770.html
三、實(shí)驗(yàn)要求
- 結(jié)合實(shí)例,繪制常見(jiàn)結(jié)構(gòu)型設(shè)計(jì)模式的結(jié)構(gòu)圖;
- 使用任意一種面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)常見(jiàn)結(jié)構(gòu)型設(shè)計(jì)模式實(shí)例,代碼運(yùn)行正確。
四、實(shí)驗(yàn)步驟
- 結(jié)合實(shí)例,繪制適配器模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制橋接模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制組合模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制外觀模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制代理模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制組合模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例;
- 結(jié)合實(shí)例,繪制外觀模式實(shí)例結(jié)構(gòu)圖并用面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)該模式實(shí)例。
五、實(shí)驗(yàn)結(jié)果
- 需要提供適配器模式實(shí)例的結(jié)構(gòu)圖(類(lèi)圖)和實(shí)現(xiàn)代碼。
(1)類(lèi)圖實(shí)現(xiàn):
(2)實(shí)現(xiàn)代碼:
//抽象數(shù)據(jù)操作類(lèi):目標(biāo)接口
interface DataOperation{
public int[] sort(int array[]);
public int search(int array[],int key); }
//快速排序類(lèi):適配者
class QuickSort{
public int[] quickSort(int array[]){
sort(array,0,array.length-1);
return array; }
public void sort(int array[],int p, int r){
int q=0;
if(p<r){
q=partition(array,p,r);
sort(array,p,q-1);
sort(array,q+1,r); } }
public int partition(int[] a, int p, int r){
int x=a[r]; int j=p-1;
for(int i=p;i<=r-1;i++){
if(a[i]<=x){
j++; swap(a,j,i); } }
swap(a,j+1,r); return j+1; }
public void swap(int[] a, int i, int j) {
int t = a[i]; a[i] = a[j]; a[j] = t; } }
//二分查找類(lèi):適配者
class BinarySearch{
public int binarySearch(int array[],int key){
int low = 0; int high = array.length -1;
while(low <= high){<文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-435770.html
到了這里,關(guān)于軟件設(shè)計(jì)實(shí)驗(yàn)三 結(jié)構(gòu)型設(shè)計(jì)模式實(shí)驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!