Invariant - Шаблон SelfDrivingVehicle, который остается неизменным во всех подтипах, т.е. в порядке, в котором он выполняет переопределенное поведение для достижения цели.
Давайте предположим еще один метод здесь
-List<SelfDrivingVehicle> vehicles
+Add(SelfDrivingVehicle vehicle)
vehicles.add(vehicle)
Предварительное условие - SelfDriveVehicle Базовый тип не имеет транспортных средств (здесь контекст является Add) и его в Ослабленном предварительном условии, которое не может быть изменено ни одним из его подтипов путем изменения транспортных средств свойства и усиления его явно. Любой из подтипов может вызывать только Add.
Постусловие - после вызова Add базовый тип находится в усиленном постусловии, которое не может быть ослаблено подтипами путем изменения стоимости транспортных средств.
State of Base Type возвращается в исходное состояние после вызова Add Behavior.
Вишал Патвардхан
источник