Sobes.tech
Junior — Middle

Uygulama mimarisinde Coordinator ve Router desenleri arasındaki farkları açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Koordinatör ve Router desenleri, uygulamalarda gezinmeyi yönetmek için her ikisi de kullanılır, ancak farklı vurgu ve sorumluluk seviyelerine sahiptirler.

Koordinatör — gezinme akışını ve iş mantığını yöneten bir nesnedir. Ekranların oluşturulması ve bağlanması ile bunlar arasındaki geçişlerden sorumludur. Koordinatör genellikle hangi ekranın gösterileceğine karar veren mantığı içerir ve birkaç iç içe koordinatörü yönetebilir.

Router — doğrudan ekranlar arasında geçişleri (örneğin, push, present) gerçekleştiren daha düşük seviyeli bir bileşendir. Genellikle UINavigationController veya diğer gezinme araçlarıyla çalışma detaylarını kapsüller ve geçişler için basit bir arayüz sağlar.

Ana farklar:

  • Koordinatör, gezinme mantığını ve uygulama akışını yönetirken, Router belirli geçiş eylemlerinden sorumludur.
  • Koordinatör, geçişleri gerçekleştirmek için bir veya daha fazla Router kullanabilir.
  • Koordinatör, ekranların oluşturulması ve yapılandırılmasından sorumluyken, Router bunların gösterilmesinden sorumludur.

Basitleştirilmiş yapı örneği:

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)
    }
}