Principio de inversión de dependencia: comprender cómo los componentes de bajo nivel y los componentes de alto nivel dependen de las abstracciones

8

Estoy aprendiendo sobre el principio de inversión de dependencia. Afirma que:

  

Los módulos de alto nivel no deben depender de los módulos de bajo nivel. Ambos   Debería depender de las abstracciones.

Durante un tiempo traté de entender lo que significa que tanto los componentes de alto nivel como los componentes de bajo nivel dependen de las abstracciones y son dependientes de ellos .

Supongo que ambos deben depender de la misma abstracción de alguna manera. Corríjame si esto está mal.

He llegado a una 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 hablan 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 ajustarse a la interfaz . Son dependientes de la interfaz, de la manera 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 este un buen entendimiento?

    
pregunta Aviv Cohn 06.04.2014 - 16:11

2 respuestas

4

Tu 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 utilices símbolos UML:

  • Flecha abierta: utiliza
  • Flecha cerrada: hereda o implementa
  • < < nombre entre paréntesis > > : interfaz o clase abstracta
respondido por el Tulains Córdova 30.04.2014 - 20:35
0

Sí, muchas personas piensan 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 de negocios se encuentra en la DAL, la interfaz de usuario se encuentra en la capa de negocios ...

En su lugar, piensa en él 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 de negocios, la capa empresarial y DAL se cuelgan de la interfaz DAL, DAL y la base de datos se conectan a través de la interfaz DB

    
respondido por el Michael Brown 30.04.2014 - 20:49

Lea otras preguntas en las etiquetas