谓词(一个对象是一个布尔值函数,用于测试条件的输入)通常被认为是无状态的。
具有状态测试功能的对象的最合适名称是什么?
e.g。在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;
}
}
答案 0 :(得分:1)
考虑到它是一个接口,接口是implemented
而不是extended
,那么我在你的对象中没有看到实现谓词的问题。
如果您要将public CountTrigger(T testValue, int count)
放在界面中,那么您可能需要一个不同的名称。也许是IFiniteRule或其他合适的同义词。也许问https://english.stackexchange.com/; - )