Lógica y Polimorfismo
Haz explícitas todas las dependencias y reemplaza las cadenas if/switch con despacho polimórfico.
Dependencias Físicas Explícitas
G22: Si una función necesita una variable de entorno, un objeto de configuración o un manejador de base de datos, debe declarar esa dependencia explícitamente — no alcanzar un global o un estático. Las dependencias ocultas hacen el código impredecible y difícil de probar. Cuando las dependencias de una función son explícitas, puedes sustituirlas en las pruebas.
Polimorfismo sobre Condicionales
G23: Una sentencia switch que despacha según el tipo de un objeto es un código que huele a problemas. Cada vez que añades un nuevo tipo, debes encontrar y actualizar cada switch. El polimorfismo resuelve esto moviendo cada rama a la clase a la que pertenece. El método area() vive en Circle, Rectangle y Triangle — no en un switch centralizado.
Desafío de Código
Reemplaza el switch de compute_area con un método polimórfico area() en cada forma.
💡Conclusión clave
Cada switch sobre tipos es una oportunidad perdida para el polimorfismo. Mueve la lógica a los objetos, no al despachador.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: G22: Inyecta dependencias; nunca dependas silenciosamente de globales. G23: Añade un método virtual a la clase base en lugar de una nueva rama switch.
✗ Tu versión