Sobes.tech
Junior — Middle

Tətbiq memarlığında Koordinator və Router nümunələri arasındakı fərqləri izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Koordinator və Router nümunələri tətbiqlərdə naviqasiyanı idarə etmək üçün hər ikisindən istifadə olunur, lakin fərqli vurğular və məsuliyyət səviyyələrinə malikdirlər.

Koordinator — bu, ekranların axını və naviqasiya biznes məntiqini idarə edən obyektidir. O, ekranların yaradılması və əlaqələndirilməsi, həmçinin onların arasında keçidlər üçün məsuliyyət daşıyır. Koordinator tez-tez növbəti göstəriləcək ekranı müəyyən edən məntiqi ehtiva edir və bir neçə iç-içə koordinatoru idarə edə bilər.

Router — bu, aşağı səviyyəli komponentdir və birbaşa ekranlar arasında keçidləri (məsələn, push, present) həyata keçirir. Router adətən UINavigationController və ya digər naviqasiya vasitələri ilə işləmək detalları ilə işləyir və keçidlər üçün sadə interfeys təmin edir.

Əsas fərqlər:

  • Koordinator naviqasiya məntiqini və tətbiqin axını idarə edir, Router — keçid əməliyyatlarını.
  • Koordinator bir və ya bir neçə Router istifadə edə bilər.
  • Koordinator ekranların yaradılması və konfiqurasiyasından məsuliyyət daşıyır, Router isə onların göstərilməsindən.

Sadələşdirilmiş struktur nümunəsi:

protocol Router {
    func push(_ viewController: UIViewController, animated: Bool)
    func present(_ viewController: UIViewController, animated: Bool)
}

class AppCoordinator {
    let router: Router

    func start() {
        let firstVC = FirstViewController()
        router.push(firstVC, animated: true)
    }
}