Как определение Единой ответственности:
Класс (объект) должен иметь одну-единственную ответственность (и эта ответственность должна быть полностью заключена в капсулу)
или просто
У класса должна быть только одна причина для изменения.
Это очень известный и важный принцип в мире программирования.Однако, глядя на дизайн Android Activity, с моей точки зрения, Activity имеет более чем одну ответственность
- Он управляет присоединенными окнами, диалогами, панелью действий, меню
- Он обрабатывает состояние экземпляра
- Управляет клавиатурой
- Он обрабатывает логику изменения конфигурации
- Предоставляет курсор для получения данных
- И т.д.
И, как я вижу во многих учебных пособиях, блоге, GitHub с открытым исходным кодом, люди также используют Activity для надувания представления.
Тогда мой вопрос: нарушает ли класс активности Android принцип единой ответственности?