Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Código Limpio60 XP6 min

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