Este proyecto es un ejemplo práctico que implementa los principios SOLID de programación orientada a objetos en Java. El código demuestra cómo aplicar estos principios en un sistema bancario simplificado.
Para una explicación detallada de los conceptos implementados en este proyecto, consulta el artículo completo en: Principios SOLID en Java: Guía Completa con Ejemplos Prácticos
src/
├── main/java/com/geovannycode/solid/
│ ├── App.java # Clase principal con ejemplos de uso
│ ├── Cuenta.java # Clase base abstracta para cuentas
│ ├── CuentaAhorro.java # Implementación de cuenta de ahorros
│ ├── CuentaCorriente.java # Implementación de cuenta corriente
│ ├── CuentaDeAhorros.java # Otra implementación de cuenta de ahorros
│ ├── InformeGenerable.java # Interfaz para generación de informes
│ ├── Transaccionable.java # Interfaz para operaciones de transacción
│ └── ... (más archivos)
└── test/java/com/geovannycode/solid/
├── CuentaCorrienteTest.java
├── CuentaDeAhorrosTest.java
└── ... (más pruebas)
- Cada clase tiene una única responsabilidad
- Ejemplo:
CuentaCorrientemaneja solo operaciones de cuenta corriente InformeGenerablesepara la lógica de generación de informes
- Las entidades están abiertas a extensión pero cerradas a modificación
- Se pueden agregar nuevos tipos de cuentas sin modificar el código existente
- Las clases derivadas pueden ser sustituidas por sus clases base
- Ejemplo:
CuentaAhorroyCuentaCorrientepueden usarse donde se espereTransaccionable
- Interfaces específicas en lugar de una interfaz general
- Ejemplo:
Transaccionablesolo declara métodos relacionados con transacciones
- Los módulos de alto nivel no dependen de los de bajo nivel
- Ambos dependen de abstracciones
- Java 21 o superior
- Maven 3.6 o superior
mvn clean compilemvn exec:java -Dexec.mainClass="com.geovannycode.solid.App"mvn testLa clase App.java incluye ejemplos de uso que demuestran:
- Procesamiento de transacciones con diferentes tipos de cuentas
- Generación de informes
- Cálculo de impuestos
- Funcionalidades existentes del sistema
El proyecto incluye pruebas unitarias que validan el correcto funcionamiento de las implementaciones:
- Pruebas para
CuentaCorriente - Pruebas para
CuentaDeAhorros - Pruebas para
EvaluacionCreditoService - Pruebas para
ProcesadorDePagos
Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.
Las contribuciones son bienvenidas. Por favor, lee las pautas de contribución antes de enviar un pull request.
Para más información, visita geovannycode.com o sigue a @geovannycode en Twitter.