Выбор ответа Middle ООП в C# обновлено

Принцип подстановки Лисков

Вопрос

Класс Square : Rectangle переопределяет сеттеры так, что изменение ширины меняет и высоту. Какой принцип SOLID нарушен?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Принцип подстановки Лисков (LSP). Код, работающий с Rectangle, ожидает, что после Width = 5; Height = 2 площадь будет 10.

Варианты ответа

  1. Принцип единственной ответственности (SRP)
  2. Принцип разделения интерфейсов (ISP)
  3. Принцип подстановки Лисков (LSP)правильный ответ
  4. Принцип инверсии зависимостей (DIP)

Разбор

Код, работающий с Rectangle, ожидает, что после Width = 5; Height = 2 площадь будет 10. С Square получится 4: наследник нельзя подставить вместо базового типа без изменения поведения программы, это LSP. SRP о количестве причин для изменения класса, ISP о толстых интерфейсах, DIP о зависимости от абстракций.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме