Invariant - Vorlage von SelfDrivingVehicle, die in allen Untertypen unverändert bleibt, dh in der Reihenfolge, in der das überschriebene Verhalten ausgeführt wird, um das Ziel zu erreichen.
Nehmen wir hier eine weitere Methode an
-List<SelfDrivingVehicle> vehicles
+Add(SelfDrivingVehicle vehicle)
vehicles.add(vehicle)
Voraussetzung - SelfDriveVehicle, der Basistyp, enthält keine Fahrzeuge (hier ist der Kontext Hinzufügen) und seine abgeschwächte Voraussetzung, die von keinem seiner Untertypen geändert werden kann, indem die Eigenschaftsfahrzeuge geändert und explizit gestärkt werden. Jeder der Untertypen kann nur Add aufrufen.
Nachbedingung - Nach dem Aufrufen von Hinzufügen befindet sich der Basistyp in der verstärkten Nachbedingung, die durch Ändern des Fahrzeugwerts nicht durch Untertypen geschwächt werden kann.
Der Status des Basistyps wird auf den ursprünglichen Status zurückgesetzt, sobald das Verhalten "Hinzufügen" aufgerufen wird.