Какие два принципа SOLID максимально похожи друг на друга
Python
Junior
Рунити
Какие два принципа SOLID максимально похожи друг на друга
Ответы
Принципы **LSP (Liskov Substitution Principle)** и **ISP (Interface Segregation Principle)** часто путают, так как оба связаны с проектированием интерфейсов и наследованием.
- **LSP** требует, чтобы подклассы могли заменять родительские классы без изменения корректности программы.
- **ISP** говорит, что клиенты не должны зависеть от интерфейсов, которые они не используют.
Пример нарушения LSP:
```
class Bird:
def fly(self):
pass
class Penguin(Bird): # Пингвин не может летать, нарушение LSP
def fly(self):
raise NotImplementedError
```
Пример нарушения ISP:
```
class Worker:
def work(self): pass
def eat(self): pass
class Robot(Worker): # Роботу не нужно есть, но он вынужден реализовывать eat()
def eat(self):
raise NotImplementedError
```
Оба принципа направлены на избегание "ненужных" методов, но LSP фокусируется на поведении подклассов, а ISP — на разделении интерфейсов.