Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Android: solid, oop, principles, android

SOLID, рассказать что это и привести примеры нарушения из Android SDK.

Вопрос проверяет понимание принципов SOLID и их применение.

Короткий ответ

SOLID - 5 принципов ООП: Single responsibility, Open-closed, Liskov substitution, Interface segregation, Dependency inversion. В Android SDK есть нарушения, например в Activity.

Длинный ответ

Принципы SOLID:

  1. Single Responsibility (Activity)

    • Нарушение: Activity часто делает слишком много (UI, логика, навигация)

  2. Open-Closed (View)

    • Нарушение: Классы View сложно расширять без модификации

  3. Liskov Substitution (DialogFragment)

    • Нарушение: Не все DialogFragment взаимозаменяемы

  4. Interface Segregation (OnClickListener)

    • Нарушение: Один интерфейс для разных событий кликов

  5. Dependency Inversion (SharedPreferences)

    • Нарушение: Прямая зависимость от конкретной реализации

Пример нарушения SRP:

class MainActivity : AppCompatActivity() {
    // Нарушение: Activity управляет всем
    fun loadData() { /*...*/ }
    fun setupUI() { /*...*/ }
    fun handleBusinessLogic() { /*...*/ }
}

Как исправить (пример для DI):

// Вместо:
class MyClass {
    private val prefs = SharedPreferences(...)
}

// По принципу DIP:
class MyClass(private val storage: StorageInterface)

Вывод:
SOLID помогает создавать поддерживаемый код, но в Android SDK есть исторические нарушения для обратной совместимости.

Уровень

  • Рейтинг:

    3

  • Сложность:

    9

Навыки

  • Android

    Android

Ключевые слова

#solid

#oop

#principles

#android

Подпишись на Android Developer в телеграм