Встречается на собеседованиях • сегодня

Какие два принципа SOLID максимально похожи друг на друга

Принципы LSP (Liskov Substitution Principle) и ISP (Interface Segregation Principle) часто путают, так как оба связаны с проектированием интерфейсов и наследованием.

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

Пример нарушения LSP:

python
class Bird:
    def fly(self):
        pass

class Penguin(Bird):  # Пингвин не может летать, нарушение LSP
    def fly(self):
        raise NotImplementedError

Пример нарушения ISP:

python
class Worker:
    def work(self): pass
    def eat(self): pass

class Robot(Worker):  # Роботу не нужно есть, но он вынужден реализовывать eat()
    def eat(self):
        raise NotImplementedError

Оба принципа направлены на избегание "ненужных" методов, но LSP фокусируется на поведении подклассов, а ISP — на разделении интерфейсов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы