Ampliando la respuesta de Kilian Foth, esta dirección de estratificación corresponde a una dirección en la que un humano explora un sistema.
Imagine que es un nuevo desarrollador encargado de corregir un error en el sistema en capas.
Los errores generalmente no coinciden entre lo que el cliente necesita y lo que obtiene. A medida que el cliente se comunica con el sistema a través de la interfaz de usuario y obtiene resultados a través de la interfaz de usuario (la interfaz de usuario significa literalmente 'interfaz de usuario'), los errores también se informan en términos de interfaz de usuario. Por lo tanto, como desarrollador, no tiene muchas opciones, sino comenzar a mirar la interfaz de usuario también, para descubrir qué sucedió.
Por eso es necesario tener conexiones de capa de arriba hacia abajo. Ahora, ¿por qué no tenemos conexiones en ambos sentidos?
Bueno, tienes tres escenarios de cómo podría ocurrir ese error.
Podría ocurrir en el propio código de la interfaz de usuario y, por lo tanto, estar localizado allí. Esto es fácil, solo necesitas encontrar un lugar y arreglarlo.
Podría ocurrir en otras partes del sistema como resultado de llamadas realizadas desde la IU. Lo cual es moderadamente difícil, trazas un árbol de llamadas, encuentras un lugar donde ocurre el error y lo arreglas.
Y podría ocurrir como resultado de una llamada EN su código de UI. Lo cual es difícil, debe capturar la llamada, encontrar su fuente y luego averiguar dónde se produce el error. Teniendo en cuenta que un punto en el que comienza está situado en el fondo de una sola rama de un árbol de llamadas, Y primero necesita encontrar un árbol de llamadas correcto, podría haber varias llamadas en el código de la interfaz de usuario, tiene su depuración cortada para usted.
Para eliminar el caso más difícil tanto como sea posible, se desaconsejan las dependencias circulares, las capas se conectan principalmente de arriba hacia abajo. Incluso cuando se necesita una conexión en sentido contrario, generalmente es limitada y está claramente definida. Por ejemplo, incluso con las devoluciones de llamada, que son una especie de conexión inversa, el código que se llama en devolución de llamada generalmente proporciona esta devolución de llamada en primer lugar, implementando una especie de "aceptación" para conexiones inversas y limita su impacto en la comprensión de un sistema.
La estratificación es una herramienta y está dirigida principalmente a desarrolladores que admiten un sistema existente. Bueno, las conexiones entre capas también reflejan eso.