Нарушает ли переопределение конструктора принцип подстановки Лисков в частных случаях? Предположим, что есть базовый интерфейс, в котором описано только поведение и некоторые базовые свойства но не определена сигнатура конструктора. Эту сущность предполагается поставлять клиентам через инъекцию зависимости (либо напрямую, либо через фабрику). То есть, инстанцирование объекта всегда вынесено за пределы клиентов по определению. В таком случае, если потомки этой сущности будут иметь специфические конструкторы со специфическими сигнатурами, будет ли это нарушать LSP? Ведь все клиенты будут завязаны строго на интерфейс уже инстанцированного объекта.

17 Мар 2022 в 19:54
156 +1
0
Ответы
1

В данном случае, переопределение конструктора не будет являться нарушением принципа подстановки Лисков, так как клиенты не зависят от специфических конструкторов потомков, а только от интерфейса базовой сущности. Клиенты работают с объектами на основе этого интерфейса и не имеют доступа к конструкторам потомков напрямую.

Поэтому, если базовая сущность не определяет конструктор, а потомки имеют специфические конструкторы, это не нарушает LSP, поскольку клиенты продолжают использовать объекты на основе базового интерфейса без необходимости знать о конкретных деталях создания объекта.

16 Апр в 19:04
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 956 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир