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