Можешь привести пример использования принципа S в SOLID

«Можешь привести пример использования принципа S в SOLID» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Single Responsibility Principle (SRP) гласит, что класс должен иметь только одну причину для изменения, т.е. одну ответственность.

Пример:
Допустим, у нас есть класс User, который хранит данные пользователя и сохраняет их в базу. Это нарушает SRP, так как класс делает две вещи.

Неправильно:

class User(val name: String, val email: String) {
    fun saveToDatabase() {
        // Сохранение в БД
    }
}

Правильно:

class User(val name: String, val email: String)

class UserRepository {
    fun saveUser(user: User) {
        // Сохранение в БД
    }
}

Теперь User отвечает только за хранение данных, а UserRepository — за работу с БД.