Какие знаешь принципы SOLID
SOLID — это пять принципов объектно-ориентированного проектирования:
-
Single Responsibility (SRP) — класс должен иметь только одну причину для изменения.
Пример: классUserдолжен отвечать только за данные пользователя, а не за логирование или валидацию. -
Open-Closed (OCP) — классы должны быть открыты для расширения, но закрыты для модификации.
Пример: использование интерфейсов и абстрактных классов для добавления новой функциональности без изменения существующего кода.
-
Liskov Substitution (LSP) — подклассы должны заменять базовые классы без изменения поведения программы.
Пример: еслиBird— базовый класс, тоPenguinне должен переопределять методfly(), если он не летает. -
Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.
Пример: вместо одного громоздкого интерфейсаAnimalс методамиfly(),swim(),run(), лучше создать отдельные интерфейсы для каждого поведения. -
Dependency Inversion (DIP) — модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций.
Пример: внедрение зависимости через конструктор или сеттер, а не создание объектов внутри класса.
// Пример DIP
class UserService {
private final UserRepository repository;
public UserService(UserRepository repository) {
this.repository = repository;
}
}
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру