Какие классы Android API нарушают принципы SOLID

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

Ответ

Нарушение SOLID в Android API встречается часто. Например:

1. Activity нарушает SRP (Single Responsibility)
Содержит логику UI, навигации, работы с данными, жизненным циклом. Должна быть разделена на отдельные классы.

2. SharedPreferences нарушает DIP (Dependency Inversion)
Прямая зависимость от конкретной реализации, сложно подменить на другую систему хранения без изменения кода. Лучше использовать интерфейсы.

3. FragmentManager нарушает OCP (Open-Closed)
Жестко завязан на Fragment, что усложняет расширение для других типов компонентов.

Пример нарушения ISP (Interface Segregation):

// OnClickListener имеет один метод, но в других случаях интерфейсы 
// (например, TextWatcher) заставляют реализовывать ненужные методы
view.setOnClickListener { /* только onClick нужен */ }