Java-策略模式代码演示

package com.oracleoaec.strategydemo;

public class SortDemo {

public static void main(String[] args) {
int [] array={20,15,35,27,18,40,50,29};
BubbleSort bsort=new BubbleSort();
SelectSort ssort=new SelectSort();
Context1 context1=new Context1(bsort);
Context1 context2=new Context1(ssort);
context1.sort(array);
context1.print(array);
context2.sort(array);
context2.print(array);
}

}
class Context1{
private Isort isort=null;
public Context1(Isort isort){
this.isort=isort;
}
public void sort(int [] array){
isort.sort(array);
}
public void print(int [] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
}
}
interface Isort{
public abstract void  sort(int [] array);
}
class BubbleSort implements Isort{
@Override
public void sort(int[] array) {
System.out.println("冒泡排序法");
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}

}
class SelectSort implements Isort{
@Override
public void sort(int[] array) {
System.out.println("选择排序法");
for(int i=0;i<array.length;i++){
int min=i;
for(int j=i+1;j<array.length;j++){
if(array[min]>array[j]){
min=j;
}
}
if(min!=i){
int temp=array[min];
array[min]=array[i];
array[i]=temp;
}
}
}

}

猜你喜欢

转载自fengwuhen1990.iteye.com/blog/2341976
今日推荐