该知识点是自己从书籍中学习的笔记。
函数指针是其他一些语言的专利,如c。c语言通过函数指针,可以对数组中的数据进行排序。函数指针就代表了排序规则。这就相当于就是策略设计模式。
在java是没有函数指针的,但是可以通过对象引用方式来实现。这种设计模式叫做策略模式。为了实现策略模式,需要首先定义一个接口(该接口是策略接口),然后一个类实现了该接口(作为具体策略)。
如果具体策略类仅仅是使用一次的话,那么就可以将该具体策略类作为匿名类来实现。如:Arrays.sort(strList, new Comparator<String>(){…..}).
如果具体策略类会使用多次的话,那么就将该具体策略作为一个静态变量导出。如下:
public interface Strategy {
public int comparator(String str1, String str2);
}
class Host {
private static class ConcreteStrategy implements Strategy {
@Override
public int comparator(String str1, String str2) {
return 0;
}
}
public static final Strategy STRATEGY = new ConcreteStrategy();
}