Dependency Inversion

El principio de Dependency Inversion indica que las siguientes dos condiciones:
  • Los módulos de alto nivel no deben depender de los módulos de bajo nivel. Ambos deben depender de abstracciones.
  • Las abstracciones no deben depender de los detalles.
Por lo tanto, para poder interactuar con una clase, se debe tener un intermedio, sea una clase abstracta o interfaz, que sirva de intermedio. Esto simula un modelo por capas.

Acá se muestra un ejemplo:

Imagen proporcionada por Kevin Martin, por Creative Commons.

La figura 1 muestra una interacción directa entre el objeto A y el objeto B, lo cual viola el principio. Para poder resolver esto, creamos un tipo de interfaz (aunque también sirve con una clase abstracta) para poder interactuar con el objeto B.

Si tomamos en cuenta la clase Shape, la cual es abstracta, esta es una capa para poder interactuar con las clases concretas (en este caso, las figuras). Por lo tanto, se nota el cumplimiento del principio dentro del patrón Prototype.

Nenhum comentário:

Postar um comentário