谓词(一个对象是一个布尔值函数,用于测试其输入的条件)通常被假定为无状态的。
对于具有状态测试功能的对象,最合适的名称是什么?
例如,在 Java 中,CountTrigger
下面的类仅在第 N 次针对与所需值匹配的值进行测试时返回 true,否则返回 false。
interface QuasiPredicate<T> // what should this be renamed to?
{
public boolean test(T value);
}
class CountTrigger<T> implements QuasiPredicate<T>
{
// for simplicity, ignore synchronization + null-value issues
private int remainingTriggers = 0;
final private T testValue;
public CountTrigger(T testValue, int count)
{
this.remainingTriggers = count;
this.testValue = testValue;
}
@Override public boolean test(T value)
{
if (!this.testValue.equals(value))
return false;
if (this.remainingTriggers == 0)
return false;
if (--this.remainingTriggers == 0)
return true;
}
}