您的位置:首页 > Web前端

学习effective java-21类和接口之使用功能对象表示策略

2012-01-11 15:37 417 查看
该知识点是自己从书籍中学习的笔记。

函数指针是其他一些语言的专利,如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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: