Встречается на собеседованиях • сегодня
Какие знаешь принципы SOLID
SOLID — это пять принципов объектно-ориентированного проектирования, которые помогают создавать гибкий и поддерживаемый код:
- Single Responsibility (SRP) — класс должен иметь только одну причину для изменения (одну ответственность).
csharp
// Плохо: класс и логирует, и сохраняет данные class UserManager { void SaveUser(User user) { /*...*/ } void LogError(string error) { /*...*/ } }
-
Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для изменений.
csharpabstract class Shape { public abstract double Area(); } class Circle : Shape { /*...*/ } // Новые фигуры добавляются без изменения базового класса. -
Liskov Substitution (LSP) — подклассы должны заменять базовые классы без изменения поведения программы.
csharp// Нарушение: Square, наследующий Rectangle, ломает логику, если меняет ширину/высоту. -
Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.
csharp// Лучше разделить на IReadable и IWritable вместо одного "грязного" интерфейса. -
Dependency Inversion (DIP) — зависимости должны строиться на абстракциях, а не на конкретных реализациях.
csharpclass OrderService { private readonly ILogger _logger; public OrderService(ILogger logger) { _logger = logger; } // Внедрение зависимости через интерфейс. }
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
