Встречается на собеседованиях • сегодня

Какие знаешь принципы SOLID

SOLID — это пять принципов объектно-ориентированного проектирования:

  1. Single Responsibility (SRP) — класс должен иметь только одну причину для изменения.
    Пример: класс User должен отвечать только за данные пользователя, а не за логирование или валидацию.

  2. Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для модификации.
    Пример: использование интерфейсов и абстрактных классов для добавления новой функциональности без изменения существующего кода.

  1. Liskov Substitution (LSP) — подклассы должны заменять базовые классы без изменения поведения программы.
    Пример: если Bird — базовый класс, то Penguin не должен переопределять метод fly(), если он не летает.

  2. Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.
    Пример: вместо одного громоздкого интерфейса Animal с методами fly(), swim(), run(), лучше создать отдельные интерфейсы для каждого поведения.

  3. Dependency Inversion (DIP) — модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций.
    Пример: внедрение зависимости через конструктор или сеттер, а не создание объектов внутри класса.

java
// Пример DIP
class UserService {
    private final UserRepository repository;
    
    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы