Back to questions
Middle
3
Расскажите про принципы SOLID
Companies where asked
Navio
Answer from AI
sobes.tech AI
Принципы SOLID — это пять основных принципов объектно-ориентированного программирования, направленных на создание гибкого и поддерживаемого кода:
- S (Single Responsibility Principle) — принцип единственной ответственности: класс должен иметь только одну причину для изменения.
- O (Open/Closed Principle) — принцип открытости/закрытости: программные сущности должны быть открыты для расширения, но закрыты для модификации.
- L (Liskov Substitution Principle) — принцип подстановки Барбары Лисков: объекты подкласса должны быть заменяемы объектами суперкласса без нарушения работы программы.
- I (Interface Segregation Principle) — принцип разделения интерфейса: клиенты не должны зависеть от интерфейсов, которые они не используют.
- D (Dependency Inversion Principle) — принцип инверсии зависимостей: зависимости должны строиться на абстракциях, а не на конкретных реализациях.
Пример на Python:
from abc import ABC, abstractmethod
# Принцип единственной ответственности
class ReportGenerator:
def generate(self):
pass
class ReportSaver:
def save(self, report):
pass
# Принцип инверсии зависимостей
class Database(ABC):
@abstractmethod
def connect(self):
pass
class MySQLDatabase(Database):
def connect(self):
print("Connecting to MySQL")
class Application:
def __init__(self, db: Database):
self.db = db
def run(self):
self.db.connect()
app = Application(MySQLDatabase())
app.run()
Этот пример демонстрирует разделение ответственности и использование абстракций для управления зависимостями.