Sobes.tech
Junior — Middle

Pro koho je v architektuře MVVM určena role Router?

sobes.tech AI

Odpověď od AI

V architektuře MVVM role Routeru obvykle nesouvisí přímo s Modelem, View nebo ViewModel. Router je zodpovědný za navigaci mezi obrazovkami aplikace, tedy za přechody a směrování. V iOS aplikacích je Router často implementován jako samostatná komponenta, která řídí přechody mezi ViewControllery, je volána z ViewModel nebo Koordinátora a pomáhá oddělit logiku navigace od obchodní logiky a prezentace.

Příklad: ViewModel informuje Router, že je třeba přejít na další obrazovku, a Router provádí přechod.

protocol Router {
    func navigateToDetail()
}

class AppRouter: Router {
    weak var navigationController: UINavigationController?

    func navigateToDetail() {
        let detailVC = DetailViewController()
        navigationController?.pushViewController(detailVC, animated: true)
    }
}