第21条:用函数对象表示策略
总结:
- 函数指针的主要用途就是实现策略模式。
- 为了在Java中实现这种模式,要声明一个接口来表示该策略,并且为每个具体策略声明一个实现了该接口的类。
- 当一个具体的策略只被使用一次时,通常使用匿名内部类来声明和实例化这个具体策略类。
- 当一个具体策略是设计用来重复使用的时候,它的类通常要被实现为私有的静态成员,并通过共有的静态final域被导出,其类型为该策略接口。
例1:
Arrays.sort(StringArray,new Comparator<String>(){
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
例2:
public class Host {
private static class StrLenCmp implements Comparator<String>,Serializable{
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
}
public static final Comparator<String> STRING_LENGTH_COMPARATOR = new StrLenCmp();
public static void main(String[] args) {
String s1 = "";
String s2 = "";
int result = Host.STRING_LENGTH_COMPARATOR.compare(s1, s2);
System.out.println(result);
}
}
☆☆☆☆☆☆☆
If you're afraid to fail then you're probably going to fail.
如果你害怕失败,那意味着你已经输了。
☆☆☆☆☆☆☆

浙公网安备 33010602011771号