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 Limpio50 XP5 min

Envidia de Características

Un método que pasa la mayor parte de su tiempo leyendo los datos de otra clase pertenece a esa clase.

Reconociendo la Envidia de Características

G14: La Envidia de Características es un olor a código donde un método en una clase está obsesionado con los datos de otra clase. En lugar de trabajar con sus propios datos, realiza llamadas repetidas a getters — o lee directamente campos — de un objeto externo. La señal reveladora: la lista de parámetros o el cuerpo del método hace referencia a un objeto externo mucho más que a su propia clase.

La Refactorización: Mover el Método

La cura es casi siempre la misma: mueve el método a la clase que envidia. Si Billing.calculateBill solo lee datos de Customer, pertenece a Customer. La clase contenedora se convierte en un coordinador delgado — llama al método en el objeto que posee la lógica. Esto mejora la cohesión, reduce el acoplamiento y hace el código más fácil de probar en aislamiento.

Desafío de Código

Mueve el método de cálculo de facturación a la clase Customer.

💡Conclusión clave

Un método pertenece donde viven sus datos. Si envidia a otra clase, muévelo allí.

🔧 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: Pregunta: ¿qué clase posee estos datos? El método debe vivir allí, no en el llamador.

✗ Tu versión