El objetivo de la arquitectura de software es mnimizar los recursos humanos necesarios para construir y mantener un sistema.
- Single Responsability.
- Open-Closed Principle.
- Liskov Substitution Principle.
- Interface Segregation Principle.
- Dependency Inversion Principle.
Estos principios nos ayudarán a:
- Crear software escalable.
- Crear una arquitectura limpia y mantenible.
- Escribir código más fácil de leer y entendible.
- Módulos con alta cohesión y bajo acoplamiento.
1. Single Responsability Principle
Un módulo debe tener una única razón para cambiar, es decir, que solo debe ser responsable de un usuario, de ninguno más.
2. Open-Closed Principle
Este principio dice que un artefacto software debe estar abierto para su extensión pero cerrado para su modificación, debemos poder aumentar la funcionalidad de un artefacto software sin la necesidad de modificar el funcionamieno ya existente en ese artefacto.
Lo conseguimos de la siguiente forma:
- Separando el software en componentes con alta cohesión (SRP), y asegurándose de que la dirección de las dependencias es correcta.
- Debemos proteger los componentes de alto nivel de los cambios surgidos en los componentes de bajo nivel.
3. Liskov Substitution Principle
Este principio dice que todas las clases que hereden de otra podrán usarse indistintivamente sin que eso rompa la aplicación, incluyendo en ello a la clase padre.
4. Interface Segregation Principle
Este principio nos dice que ningún cliente debe depender de métodos que no use. En un lenguaje como Java, un cambio en una operación, obligará al resto de usuarios a recompilar el módulo, aunque nada de lo que use haya cambiado.
5. Dependency Inversion Principle
Este principio nos dice que los sistemas más flexibles son aquellos que dependen de abstracciones, y no de concreciones. En Java esto significa que un módulo debe depender de interfaces y de clases abstractas, y no de implementaciones volátiles.
Esto hace necesario un mecanismo que nos cree las instancias de las implementaciones que queremos.
Y.. hasta aquí los principios SOLID hasta la semana que viene!