@Xveeder

Нарушает ли переопределение конструктора принцип подстановки Лисков в частных случаях?

Предположим, что есть базовый интерфейс, в котором описано только поведение и некоторые базовые свойства но не определена сигнатура конструктора.

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

Ведь все клиенты будут завязаны строго на интерфейс уже инстанцированного объекта.
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Нет, не нарушает. Принцип подстановки Лисков говорит о том, что клиент не должен видеть разницы между базовым объектом (в вашем случае интерфейсом) и его потомком. То есть потомки должны соблюдать контракт, определенный предком (могут делать его строже, но не слабее)

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы