Repositorio de código para la PoC de los Principios SOLID
La construcción de buenos sistemas de software depende en gran medida de qué tan “clean” (limpios) están tanto el código (building blocks) como la arquitectura. Por ende, los Principios de Diseño SOLID establecen la manera en que las funciones y los datos deberían agruparse en clases, y cómo estas últimas debería interconectarse [1]. Su objetivo, entonces es el de crear estructuras en módulos que sean capaces de adaptarse al cambio, que sean entendibles fácilmente y que sean la base de componentes reutilizables [1].
- 1980 – Robert C. Martin [1] presenta los principios en un debate de USENET (un sistema predecesor y similar a Facebook).
- 2000 – Los principios se establecen en un orden diferente.
- 2004 – Michael Feathers sugiere ordenar los principios de tal manera que sean llamados SOLID.
NOTA: un módulo es un conjunto de funciones y estructuras de datos con alta cohesión [2] (aquella que implica el cumplimiento del SRP). Según [2], esto implica que: el nombre del módulo representa su funcionalidad expuesta (mediante interfaces); y que frente a un nuevo cambio se afecten varias de las clases que pertenecen a dicho módulo, debido a la alta cohesión.
Finalmente, la aplicación de estos principios no solo garantiza la calidad y la mantenibilidad del código, sino que también ayuda a promover la agilidad en el ciclo de desarrollo de software.
Ejecute el método principal (main) de cada clase cuyo nombre se refiera a un principio de diseño SOLID:
- SingleResponsibilityPrinciple.java
- OpenClosedPrinciple.java
- LiskovSubstitutionPrinciple.java
- InterfaceSegregationPrinciple.java
- DependencyInversionPrinciple.java
- Martin C, Robert (2018). Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Pearson Education, pages 57-91, 201-211
- Enriquez, René. Salazar, Alberto (2018). Software Architecture with Spring 5.0: Design and architect highly scalable, robust, and high-performance Java applications. Packt, pages 17-28
- OpenWebinars - Clean Code