Я не могу найти ответ на это и просто хочу убедиться, что это стандарт кодирования. У меня есть интерфейс А, который используется многими разными классами и не требует изменения интерфейса А. Я столкнулся с новым требованием, которое потребует перечисления, которое потребуется многим из классов, реализующих интерфейс A, но не всем классам требуется это перечисление. Я не хочу, чтобы классы, которые не нуждаются в этом новом перечислении для реализации этой новой функции. Поэтому я создал интерфейс B, содержащий новое перечисление, которое мне нужно было добавить. Затем я сделал интерфейс B Inherit Interface A, и это мое беспокойство. Является ли в порядке для одного интерфейса для наследования другого интерфейса? Чтобы продолжить мои изменения, я изменил классы, которые нуждались в новом перечислении для реализации интерфейса B вместо интерфейса A, поскольку он был унаследован интерфейсом B. Я думал об использовании обоих интерфейсов в своих классах, которые им были нужны, но я использую Интерфейс по всему коду и хотел бы просто использовать один интерфейс для просмотра классов, а не двух.Если один интерфейс наследует другой интерфейс
Я надеюсь, что это было достаточно ясно (возможно, долго), но если кто-нибудь может дать мне несколько советов по этому поводу, либо я делаю это правильно, или я делаю это неправильно, пожалуйста, дайте мне знать.
Спасибо!
Первоначально предполагалось, что принцип замещения Лискова должен применяться. Оглядываясь назад, это не имеет особого значения. Большинство требований LSP (сохранение инвариантов, ограничений на предварительные и пост-условия) действительно применимы только к конкретным реализациям, а не к интерфейсам. Сказав это, общий принцип взаимозаменяемости должен по-прежнему направлять решения наследования интерфейсов. –
Принцип замены Лискова: важно убедиться, что интерфейс B может полностью заменить интерфейс A. В противном случае вы получите функциональность, которую вы должны реализовать, которую вы не хотите. Это приводит к дополнительному коду, который вы не хотите, что делает программное обеспечение менее стабильным. –