資源描述:
《適配器模式組合模式.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、10.適配器模式現(xiàn)有一個(gè)接口DataOperation定義了排序方法sort(int[])和查找方法search(int[],int),已知類QuickSort的quickSort(int[])方法實(shí)現(xiàn)了快速排序算法,類BinarySearch的binarySearch(int[],int)方法實(shí)現(xiàn)了二分查找算法?,F(xiàn)使用適配器模式設(shè)計(jì)一個(gè)系統(tǒng),在不修改源代碼的情況下將類QuickSort和類BinarySearch的方法適配到DataOperation接口中。繪制類圖并編程實(shí)現(xiàn)。(要求實(shí)現(xiàn)快速排序和二分查找)interfaceDataOperation{---;---;}class
2、QuickSort{publicint[]quickSort(int[]num){returnsort(num,0,num.length-1);}privateint[]sort(int[]num,intleft,intright){if(left-1&&num[--j]>s);//此時(shí)如果
3、i>=j,則說明已交叉,跳出該永久循環(huán)if(i>=j){break;}//否則如果i<=j,則交換下標(biāo)為i和下標(biāo)為j的兩元素的值swap(num,i,j);}//把比S小的數(shù)放到下標(biāo)為left處num[left]=num[j];//最后將軸S置于比它小和比它大的兩組數(shù)之間num[j]=s;//對(duì)S的左右兩側(cè)分別再次使用快速排序sort(num,left,j-1);sort(num,j+1,right);}returnnum;}privatevoidswap(int[]num,inti,intj){intt;t=num[i];num[i]=num[j];num[j]=t;}}clas
4、sBinarySearch{publicintbinarySearch(int[]num,intx){intlow=0;inthigh=num.length-1;while(low<=high){//此時(shí)拋出ArrayIndexOutOfBoundsException異常..intmid=low+(high-low)/2;intmidVal=num[mid];if(x>midVal){low=mid+1;}elseif(x5、ewQuickSort();BinarySearchbinarySearch=newBinarySearch();@Overridepublicintsearch(int[]list,intnumber){return---;}@Overridepublicvoidsort(int[]list){---;}}classDataOperationClient{publicstaticvoidmain(Stringa[]){---;//適配器DataOperationAdapterint[]list={1,3,56,23,54,86,43,57,88,56,82,90};System.
6、out.println("Listbeforesort:");for(inti=0;i7、合模式使用組合模式設(shè)計(jì)一個(gè)殺毒軟件(AntiVirus)的框架,該軟件既可以對(duì)某個(gè)文件夾(Folder)殺毒,也可以對(duì)某個(gè)指定的文件(File)進(jìn)行殺毒,文件種類包括文本文件TextFile、圖片文件ImageFile、音頻視頻文件MediaFile。繪制類圖并編程實(shí)現(xiàn)。importjava.util.ArrayList;interfaceAbstractElement{----;}classImageFileimplementsAbstractElement{---