Ответ
MVC часто нарушает SOLID, особенно принцип Single Responsibility. ViewController в iOS становится "массивным", так как объединяет логику представления и бизнес-логику. Это нарушает SRP (класс должен иметь одну причину для изменения).
Пример нарушения:
class ProfileViewController: UIViewController {
// Нарушение: и данные, и обновление UI в одном классе
func fetchUserData() {
NetworkService.fetchUser { [weak self] user in
self?.updateUI(with: user)
self?.saveToDatabase(user)
}
}
private func updateUI(with user: User) {...}
private func saveToDatabase(_ user: User) {...}
}
Также часто нарушается Dependency Inversion - ViewController напрямую зависит от конкретных сервисов. Решение - разделение на отдельные компоненты (Presenter, Interactor) как в VIPER или MVVM.