Estoy aprendiendo sobre el principio de inversión de dependencia. Se afirma que:
Los módulos de alto nivel no deberían depender de los módulos de bajo nivel. Ambos deberían depender de abstracciones.
Durante un tiempo traté de comprender lo que significa que tanto los componentes de alto nivel como los componentes de bajo nivel dependen de las abstracciones y dependen de ellos .
Supongo que ambos deberían depender de la misma abstracción de alguna manera. Por favor corrígeme si esto está mal.
He llegado a alguna conclusión sobre lo que esto significa. Por favor confirme si esto es correcto.
" Los componentes de alto nivel dependen de la abstracción" - Significado:
Los componentes de alto nivel se comunican con una interfaz para comunicarse con los componentes de bajo nivel , en lugar de comunicarse directamente con componentes concretos de bajo nivel. Los componentes de bajo nivel implementan esta interfaz.
" Los componentes de bajo nivel dependen de la abstracción" - Significado:
Los componentes de bajo nivel están definidos y diseñados en los términos de la interfaz. Están diseñados para adaptarse a la interfaz . Dependen de la interfaz, en la forma en que la interfaz define cómo están diseñados. (A menudo, las clases de bajo nivel implementan esa interfaz).
De esta manera, tanto los componentes de alto nivel como los de bajo nivel son "dependientes de la abstracción", pero de diferentes maneras.
¿Es esto un buen entendimiento?
fuente
Respuestas:
Su comprensión del concepto es muy precisa.
Señalar excepciones, casos especiales o minucias filosóficas en este momento lo desviaría de su claridad de concepto actual.
Sin embargo, sugeriría que use símbolos UML:
fuente
Sí, mucha gente piensa en la construcción de software como en la construcción de edificios. La base de datos es la "base" en la que se encuentra el DAL, la capa empresarial se sienta en la DAL, la interfaz de usuario se sienta en la capa empresarial ...
En cambio, piense en ello como un móvil colgante. Donde las "capas" cuelgan de un ancla común. La interfaz de usuario y la capa empresarial se cuelgan de la interfaz empresarial, la capa empresarial y el DAL se cuelgan de la interfaz DAL, DAL y la base de datos se conectan a través de la interfaz DB.
fuente