Niveles de Abstracción y Dependencias
Mantén la política de alto nivel separada del detalle de bajo nivel, y asegura que las clases base nunca dependan de las derivadas.
Nivel de Abstracción Incorrecto
G5: Cada concepto en una clase base debe estar al mismo nivel de abstracción. La política de alto nivel (autenticación, enrutamiento) no debe vivir en la misma capa que los detalles de bajo nivel (buffers de bytes, manejadores de archivos). Cuando mezclas niveles, ninguna capa es fácil de leer o reutilizar.
Las Clases Base No Deben Conocer a Sus Derivadas
G6: Una clase base que inspecciona type(self) o usa instanceof sobre sus propios hijos ya no es una clase base — es un objeto dios que pretende ser una jerarquía. El conocimiento fluye hacia abajo: base → derivada. En el momento en que fluye hacia arriba, la abstracción está rota. Refactoriza: define un método abstracto en la clase base y deja que cada clase derivada lo implemente.
Desafío de Código
Refactoriza la clase base Shape para eliminar el switch de tipos.
💡Conclusión clave
Las clases base definen contratos. Las clases derivadas poseen la implementación. Nunca inviertas ese flujo.
🔧 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: G6: La clase base no debe mencionar nombres de clases derivadas. Mueve la lógica a cada subclase.
✗ Tu versión