为了我们可以使用不同的算法实现,我们先来定义一个借口。

public interface SortAlgorithm {
	public int[] sort(int[] numbers);
}

我们先来实现一个BubbleSortAlgorithm排序。

public class BubbleSortAlgorithm implements SortAlgorithm {

	@Override
	public int[] sort(int[] numbers) {
		// 排序的处理
		return numbers;
	}

}

我们再来实现一个快速排序

public class QuickSortAlgorithm implements SortAlgorithm {

	@Override
	public int[] sort(int[] numbers) {
		// 排序的处理
		return numbers;
	}

}

我们再回到BinarySearchImpl

我们要使用排序接口,所以我们先定义一个成员变量。

public class BinarySearchImpl {

	private SortAlgorithm sortAlgorithm;

	public BinarySearchImpl(SortAlgorithm sortAlgorithm) {
		super();
		this.sortAlgorithm = sortAlgorithm;
	}

	public int binarySearch(int[] numbers, int searchNumber) {
		// 排序
		int[] sortArray = sortAlgorithm.sort(numbers);
		// 查找
		// 返回位置
		return -1;

	}
}

最后我们在改变一下我们的主类。

		BinarySearchImpl bsi = new BinarySearchImpl(new QuickSortAlgorithm());
		int result = bsi.binarySearch(new int[] {10, 6 , 4}, 3);
		System.out.println(result);