策略模式Strategy
策略模式顾名思义就是设计者只需要提供接口,而让别人来制定具体的策略在不同的接口实现中。
在方法Arrays.sort(T[] arr, Comparator<? super T> c)
与Collection.sort(T[] arr, Comparator<? super T> c)
中可以去实现Comparator
接口(制定排序策略),以达到自定义排序的目的。
大家可以具体看看这两个方法的源码,去了解策略是如何应用到具体的排序算法中。
这边为了方便讲解,就简单写了一个选择排序来讲解,直接上代码!
MyComparator interface / 我暴露出来的策略接口
package pro.eddievim.strategy;
/**
* 需要实现的策略
*
* @author eddievim
* @微信公众号 埃迪的Code日记 / PositiveEddie
* @blog https://blog.csdn.net/weixin_44129784
* @create 2020/8/21 5:04 下午
*/
public interface MyComparator<T> {
/**
* 根据返回值的正负来判断,o1对象与o2对象应该怎么排序
* 负数的情况: o1, o2
* 正数的情况: o2, o1
*
* @param o1 第一个参数
* @param o2 第二个参数
* @return 返回值
*/
public int compare(T o1, T o2);
}