Ich implementiere das Spezifikationsmuster. Die NotSpecification scheint auf den ersten Blick einfach:
NotSpecification.IsSpecialCaseOf(otherSpecification)
return !this.specification.isSpecialCaseOf(otherSpecification)
Aber es funktioniert nicht für alle Spezifikationen:
Not(LesserThan(4)).IsSpecialCaseOf(Equals(5))
Dies sollte false anstelle von true zurückgeben. Bisher denke ich, dass die einzige Möglichkeit, den isSpecialCaseOf the NotSpecification zu erreichen, darin besteht, das remainderUnsatisfiedBy zu implementieren (partielle Subsumtion im Paper on the specification pattern). Aber vielleicht übersehe ich etwas Einfacheres oder eine logische Einsicht, die dies unnötig macht.
Frage: Gibt es eine andere Möglichkeit, dies zu implementieren, indem man nicht remainderUnsatisfiedBy verwendet?