ขยายคำตอบของ Kilian Foth ทิศทางของการฝังรากลึกนี้สอดคล้องกับทิศทางที่มนุษย์สำรวจระบบ
ลองนึกภาพว่าคุณเป็นนักพัฒนาซอฟต์แวร์คนใหม่ที่มีการแก้ไขข้อบกพร่องในระบบเลเยอร์
บั๊กมักจะไม่ตรงกันระหว่างสิ่งที่ลูกค้าต้องการและสิ่งที่เขาได้รับ ในขณะที่ลูกค้าสื่อสารกับระบบผ่าน UI และรับผลผ่าน UI (UI หมายถึง 'ส่วนต่อประสานผู้ใช้' อย่างแท้จริง) ข้อบกพร่องจะถูกรายงานในรูปของ UI เช่นกัน ดังนั้นในฐานะนักพัฒนาคุณไม่มีทางเลือกมากนัก แต่เริ่มมองหา UI ด้วยเพื่อที่จะเข้าใจว่าเกิดอะไรขึ้น
นั่นเป็นเหตุผลที่จำเป็นต้องมีการเชื่อมต่อเลเยอร์จากบนลงล่าง ทีนี้ทำไมเราถึงไม่มีการเชื่อมต่อทั้งสองทาง
คุณมีสามสถานการณ์ว่าบั๊กนั้นจะเกิดขึ้นได้อย่างไร
มันอาจเกิดขึ้นในรหัส UI ของตัวเองและเพื่อให้มีการแปล นี่เป็นเรื่องง่ายคุณเพียงแค่ต้องค้นหาสถานที่และแก้ไข
มันอาจเกิดขึ้นในส่วนอื่น ๆ ของระบบเป็นผลมาจากการโทรจาก UI สิ่งใดที่ยากพอสมควรคุณสามารถติดตามทรีของการโทรค้นหาสถานที่ที่เกิดข้อผิดพลาดและแก้ไขได้
และอาจเกิดขึ้นเนื่องจากการโทรเข้าสู่รหัส UI ของคุณ สิ่งใดที่ยากคุณจะต้องโทรออกหาที่มาของมันแล้วหาข้อผิดพลาดที่เกิดขึ้น เมื่อพิจารณาว่าจุดที่คุณเริ่มต้นนั้นตั้งอยู่ลึกลงไปในต้นไม้สายเดียวและคุณจำเป็นต้องค้นหาต้นไม้สายที่ถูกต้องก่อนอาจมีการโทรหลายครั้งในรหัส UI คุณจะต้องแก้ไขข้อบกพร่องให้คุณ
เพื่อกำจัดกรณีที่ยากที่สุดเท่าที่จะเป็นไปได้การอ้างอิงแบบวงกลมนั้นไม่ได้รับการสนับสนุนอย่างมาก แม้ว่าจะต้องการการเชื่อมต่อด้วยวิธีอื่น แต่ก็มักจะถูก จำกัด และชัดเจน ตัวอย่างเช่นแม้จะมีการเรียกกลับซึ่งเป็นประเภทการเชื่อมต่อย้อนกลับรหัสที่ถูกเรียกในการติดต่อกลับมักจะให้การติดต่อกลับนี้ในสถานที่แรกการดำเนินการเรียงลำดับของ "เลือกใน" สำหรับการเชื่อมต่อย้อนกลับและ จำกัด ผลกระทบต่อการทำความเข้าใจ ระบบ.
Layering เป็นเครื่องมือและมุ่งเป้าไปที่นักพัฒนาที่สนับสนุนระบบที่มีอยู่เป็นหลัก การเชื่อมต่อระหว่างเลเยอร์นั้นก็สะท้อนเช่นกัน