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