Kilian Foth'un cevabını genişleterek, bu katmanlaşma yönü bir insanın bir sistemi araştırdığı bir yöne karşılık gelir.
Katmanlı sistemdeki bir hatayı düzeltmekle görevli yeni bir geliştirici olduğunuzu hayal edin.
Hatalar, genellikle müşterinin ihtiyaç duyduğu ve sahip olduğu şey arasındaki uyumsuzluktur. Müşteri, UI üzerinden sistemle iletişim kurduğundan ve UI üzerinden sonuç aldığından (UI kelimenin tam anlamıyla 'kullanıcı arabirimi' anlamına gelir), hatalar da UI cinsinden rapor edilir. Yani, bir geliştirici olarak, ne olduğunu bulmak için, kullanıcı arayüzüne de bakmaya başlamaktan başka seçeneğiniz yok.
Bu nedenle yukarıdan aşağıya katman bağlantılarına sahip olmak gerekir. Şimdi, neden iki taraftan da bağlantı kuramıyoruz?
Peki, bu hatanın nasıl olabileceği ile ilgili üç senaryo var.
UI kodunun kendisinde olabilir ve bu nedenle orada yerelleştirilebilir. Bu kolay, sadece bir yer bulup düzeltmeniz gerekiyor.
UI'den yapılan aramalar sonucunda sistemin diğer bölümlerinde meydana gelebilir. Orta derecede zor olan bir çağrı ağacı izler, hatanın oluştuğu yeri bulur ve düzeltirsiniz.
Ve UI kodunuzu INTO bir arama sonucu oluşabilir. Zor olan, aramayı yakalamak, kaynağını bulmak, sonra hatanın nerede olduğunu bulmak zorundasınız. Başladığınız bir noktanın bir arama ağacının tek bir dalının derinliklerine yerleştirildiğini göz önünde bulundurarak VE önce doğru bir arama ağacı bulmanız gerekir, UI kodunda birkaç arama olabilir, hata ayıklama işleminiz sizin için kesilir.
En zor durumu olabildiğince ortadan kaldırmak için, dairesel bağımlılıklar kesinlikle önerilmez, katmanlar çoğunlukla yukarıdan aşağıya bağlanır. Bir bağlantı başka bir yönteme ihtiyaç duyulduğunda bile, genellikle sınırlıdır ve açıkça tanımlanmıştır. Örneğin, bir tür ters bağlantı olan geri aramalarda bile, geri aramada çağrılan kod, genellikle bu geri aramayı ilk etapta sağlar, ters bağlantı için bir tür "katılım" uygular ve bunların anlaşılması üzerindeki etkilerini sınırlandırır. sistemi.
Katmanlama bir araçtır ve öncelikle mevcut bir sistemi destekleyen geliştiricilere yöneliktir. Tabi, katmanlar arasındaki bağlantılar da bunu yansıtıyor.