Вопрос проверяет понимание принципа единственной ответственности (Single Responsibility Principle) как одного из ключевых принципов SOLID в объектно-ориентированном программировании.
Принцип единственной ответственности (Single Responsibility Principle) — это первый принцип SOLID, который утверждает, что каждый класс или модуль должен иметь только одну причину для изменения. Другими словами, класс должен быть ответственен за одну четко определенную часть функциональности программы.
Представьте класс, который одновременно обрабатывает данные, сохраняет их в базу и отправляет уведомления. Если изменится формат базы данных, придется менять этот класс, хотя логика обработки данных осталась прежней. Это нарушает SRP. Правильнее разделить эти обязанности на три отдельных класса.
Рассмотрим нарушение SRP:
class OrderService {
calculateTotal(order) { /* расчет суммы */ }
saveToDatabase(order) { /* сохранение в БД */ }
sendEmailConfirmation(order) { /* отправка email */ }
}Исправленный вариант с соблюдением SRP:
class OrderCalculator {
calculateTotal(order) { /* расчет суммы */ }
}
class OrderRepository {
save(order) { /* сохранение в БД */ }
}
class EmailService {
sendConfirmation(order) { /* отправка email */ }
}Применение SRP делает код более модульным, тестируемым и легким для поддержки. Этот принцип особенно полезен в больших проектах, где изменения в одной части не должны ломать другие. Следуя SRP, вы создаете систему, где каждый компонент имеет четкую зону ответственности.