Какие принципы SOLID использовал во время рефакторинга кода

Python Junior Рунити
Какие принципы SOLID использовал во время рефакторинга кода
Ответы
При рефакторинге кода на Python я чаще всего применяю следующие принципы SOLID: - **Single Responsibility (SRP)** — каждый класс должен иметь одну ответственность. Например, разделяю логику обработки данных и их сохранения в разные классы. ``` # До рефакторинга class Report: def generate_report(self, data): # генерация отчета pass def save_to_file(self, report, filename): # сохранение в файл pass # После рефакторинга class ReportGenerator: def generate(self, data): pass class ReportSaver: def save(self, report, filename): pass ``` - **Open/Closed (OCP)** — классы должны быть открыты для расширения, но закрыты для модификации. Использую абстрактные классы или интерфейсы. - **Liskov Substitution (LSP)** — подклассы должны заменять родительские классы без изменения поведения. Например, если `Duck` наследует `Bird`, то он должен поддерживать все методы `Bird`. - **Interface Segregation (ISP)** — клиенты не должны зависеть от интерфейсов, которые они не используют. Разделяю большие интерфейсы на более мелкие. - **Dependency Inversion (DIP)** — зависимости должны строиться на абстракциях, а не на конкретных реализациях. Вместо прямого создания объектов использую DI.