1

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

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

例如,在 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;                  
      }
 }
4

1 回答 1

1

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

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

于 2013-01-19T10:21:38.013 回答