我正在使用一个名为 Predicate 的接口,用于筛选集合。例如,我可以定义
public class BlackCatPredicate implements Predicate<Cat> {
public boolean evaluate( Cat c ) {
return c.isBlack();
}
}
然后使用一些实用findAll( Collection<T> coll, Predicate<T> pred)
方法将谓词应用于 Cats 的集合,并只获取黑色的,等等。
我的问题是:我的代码中到处都是黑猫,所以没有必要一遍又一遍地实例化 BlackCatPredicate。它应该只有一个实例。(单例?)但是,在编写许多谓词的过程中,我不想将每个谓词都实现为单例。那么——这里的正确设计是什么?