StudyCode
middleoop

Что такое SOLID?

Войди для отслеживания
Ответ

S — Single Responsibility: класс должен иметь одну причину для изменения. O — Open/Closed: открыт для расширения, закрыт для изменения. L — Liskov Substitution: подтипы должны быть заменяемы базовым типом. I — Interface Segregation: много специфичных интерфейсов лучше одного общего. D — Dependency Inversion: зависеть от абстракций, не от конкреций.

JSJavaScriptC#C#
Примеры кода:
C#C#
// Нарушение SRP
class UserManager {
  void CreateUser() { }
  void SendEmail() { }  // не его ответственность!
  void LogActivity() { } // не его ответственность!
}

// Соблюдение SRP
class UserManager {
  void CreateUser() { }
}
class EmailService {
  void SendEmail() { }
}
class ActivityLogger {
  void Log() { }
}