仕様パターンを実装しています。NotSpecification は、最初は単純に見えます。
NotSpecification.IsSpecialCaseOf(otherSpecification)
return !this.specification.isSpecialCaseOf(otherSpecification)
ただし、すべての仕様で機能するわけではありません。
Not(LesserThan(4)).IsSpecialCaseOf(Equals(5))
これは、true ではなく false を返す必要があります。これまでのところ、NotSpecification の isSpecialCaseOf を達成する唯一の方法は、remainingUnsatisfiedBy (仕様パターンに関する論文の部分的包含) を実装することだと思います。しかし、おそらく、これを不要にするもっと単純なものや論理的な洞察が欠けているのかもしれません。
質問:remainingUnsatisfiedBy を使用せずにこれを実装する別の方法はありますか?