SOLID: Inversión de Dependencias

Y llegamos al último principio SOLID, primero que todo, espero que te hayan gustado los artículos sobre SOLID.


El principio nos vendría a decir lo siguiente:

  • Las clases de un nivel más alto no deben depender de las clases de un nivel más bajo. Ambas deben depender de las abstracciones.

  • Las abstracciones no deben depender de detalles. Los detalles deben depender de abstracciones.

Todo muy claro, ¿no?


Si no ha sido así, no te preocupes, vamos a verlo mejor con un ejemplo.


Supongamos que tenemos un sistema de mensajería, y que actualmente usamos MailChimp, nuestro código sería el siguiente:

public class MailChimpService {
    public void sendEmail() { ... }
}
**********************
public class Application {
    MailChimpService mailChimpService;

    mailChimpService.sendEmail();
}

Y esto funcionaría correctamente, pero, ¿y qué pasa si en vez de MailChimp, cambiamos a Microsoft u otro servicio de correo, por ejemplo?


Lo que tenemos que hacer es invertir las formas y depender de las abstracciones, de esta forma:

public interface MailService {
	void send();
}
**************************
public class MailChimpService implements MailService {
	...
}

public class MicrosoftMailService implements MailService {
	...
}
**************************
public class Application {
	MailService mailService;

	mailService.send();
}

Y de esta forma estaríamos cumpliendo este principio, es más sencillo de lo que parece :)


Espero que te haya gustado, tienes más artículos en mi web y estoy activo en redes sociales como Twitter, hasta la próxima.


49 vistas1 comentario

Entradas Recientes

Ver todo

©2020 por Juanma Perez.