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

Какими принципами SOLID пользовался

SOLID — это 5 принципов ООП, которые помогают писать поддерживаемый и масштабируемый код:

  1. Single Responsibility (SRP) — класс должен решать только одну задачу.

    java
    // Плохо: класс и логирует, и сохраняет
    class UserManager {
        void saveUser(User user) { /*...*/ }
        void logSave(User user) { /*...*/ }
    }
  2. Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для изменений.

    java
    interface Shape { double area(); }
    class Circle implements Shape { /*...*/ } // Новые фигуры добавляются без изменения кода
  1. Liskov Substitution (LSP) — наследники должны заменять родительские классы без ошибок.

    java
    class Bird { void fly() {} }
    class Penguin extends Bird {} // Нарушение LSP, т.к. пингвины не летают
  2. Interface Segregation (ISP) — много специализированных интерфейсов лучше одного общего.

    java
    interface Printer { void print(); }
    interface Scanner { void scan(); } // Разделяем вместо одного "MultiFunctionDevice"
  3. Dependency Inversion (DIP) — зависимости на абстракциях, а не на конкретных классах.

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

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

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

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