M06L05Semana 2~5 h
L05 — Interfaces y contratos de dominio
~5 h · Semana 2
Las interfaces fijan contratos; las clases son reemplazables. Así pruebas y diseño ganan independencia.
Objetivo
Definir interfaces de repositorio/servicio; implementar versión en memoria y fake/stub para tests de integración ligeros.
Pasos
1. Lectura (60 min)
Handbook: interfaces vs type aliases (cuándo usar cada uno). CC cap. 6 (objetos y estructuras de datos).
2. Diseño de contratos (90 min)
Separa:
RepositorioLibros(persistencia)ServicioPrestamo(casos de uso)
El servicio depende del repositorio por interfaz, no por clase concreta.
3. Implementación fake (90 min)
RepositorioLibrosFake con contador de llamadas (útil para tests).
4. Tests de servicio (60 min)
Mock/fake: verifica que prestar llama guardar o equivalente.
Hecho cuando
- Servicio desacoplado de implementación concreta.
- ≥2 implementaciones de repositorio (memoria + fake).
- Tests del servicio sin tocar disco/red.
Errores comunes
- Interfaz con 20 métodos “por si acaso”.
implementsen cadena sin necesidad.