думал. Хотя вроде логично, что если прекондишены и посткондишены входят в контракт, то инварианты тоже =\ Получается я сужаю область применения подтипов при помощи инвариантов, а это и правда нарушение LSP Т_Т
да, контракт это все - пред условия, инварианты и пост условия
Под инвариантами ты подразумеваешь выброс исключения если что-то пошло не так? Я так понимаю многие так и делают, что сужают область применения инвариантами. Навскидку вот пример из doctrine https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php#L772
Обсуждают сегодня