适用于具有状态的谓词的术语

时间:2013-01-18 23:17:39

标签: language-agnostic vocabulary

谓词(一个对象是一个布尔值函数,用于测试条件的输入)通常被认为是无状态的。

具有状态测试功能的对象的最合适名称是什么?

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;                  
      }
 }

1 个答案:

答案 0 :(得分:1)

考虑到它是一个接口,接口是implemented而不是extended,那么我在你的对象中没有看到实现谓词的问题。

如果您要将public CountTrigger(T testValue, int count)放在界面中,那么您可能需要一个不同的名称。也许是IFiniteRule或其他合适的同义词。也许问https://english.stackexchange.com/; - )