Просмотрел кучу примеров и не нашел внятного объяснения. Дают пример с квадратом и прямоугольником, дальше говорят, что принцип LSP нарушен и никакого решения не дают. После просмотра видео все стало понятно. Илье спасибо за решение и внятное объяснение!
А, что если взять наоборот и квадрат представить как базовый класс, а прямоугольник как дочерний? Тогда получается, что от базового класса есть одна сторона, а дочернем можна добавить вторую.
1) Просто сторона - это не есть высота, и сторона - не есть ширина. Все равно будет отказ от наследства квадрата - запах, потому что у прямоугольника уже ширина и высота. Просто так логичнее называть свойства, чем сторона и сторона2 (новое св-во которое добавили в прямоугольник). 2) В примере целью задачи являлось определение площади фигуры, а если мы еще захотим расшить код и другие фигуры добавить. Например круг, эллипс и т.п. У других фигур другие свойства будут: радиусы и др. Их от квадрата тоже смысла нет наследовать, поэтому такой код будет не расширяем, неподвижен. Это тоже запах.
Спосибо наконец-то разобрался в правиле solid
Просмотрел кучу примеров и не нашел внятного объяснения. Дают пример с квадратом и прямоугольником, дальше говорят, что принцип LSP нарушен и никакого решения не дают. После просмотра видео все стало понятно. Илье спасибо за решение и внятное объяснение!
Чё так мало просмотров, лайков и комментов?!😮
В предыдущем видео по OCP было #3 и в этом видео по LSP тоже #3
А вообще квадрат это частный случай ромба=)
А, что если взять наоборот и квадрат представить как базовый класс, а прямоугольник как дочерний? Тогда получается, что от базового класса есть одна сторона, а дочернем можна добавить вторую.
1) Просто сторона - это не есть высота, и сторона - не есть ширина. Все равно будет отказ от наследства квадрата - запах, потому что у прямоугольника уже ширина и высота. Просто так логичнее называть свойства, чем сторона и сторона2 (новое св-во которое добавили в прямоугольник).
2) В примере целью задачи являлось определение площади фигуры, а если мы еще захотим расшить код и другие фигуры добавить. Например круг, эллипс и т.п. У других фигур другие свойства будут: радиусы и др. Их от квадрата тоже смысла нет наследовать, поэтому такой код будет не расширяем, неподвижен. Это тоже запах.