Ubicación y Estáticos
Pon cada función en la clase más interesada en ella, y mantén los métodos estáticos como utilidades verdaderamente sin estado.
Responsabilidad Mal Ubicada
G17: Cada pieza de código debe vivir donde un lector la buscaría naturalmente. Cuando escribes un método en Order que solo lee datos de Inventory, lo has ubicado mal. El lector mirando Inventory no encontrará un método que pertenece allí. El método tiene un hogar natural — ponlo allí. La regla general: un método pertenece a la clase cuyos datos usa más.
Métodos Estáticos Inapropiados
G18: Los métodos estáticos están bien para utilidades puras que no necesitan polimorfismo — Math.round, String.format. Se convierten en un problema cuando el método debería ser polimórfico. Si tienes Order.calculateFee(order) como estático y mañana necesitas que RushOrder calcule las tarifas de manera diferente, estás atrapado. Los métodos de instancia admiten sobrescritura; los estáticos no.
Desafío de Código
Mueve el método reorder_needed a la clase Inventory donde pertenece.
💡Conclusión clave
Pon el código donde un lector lo buscaría naturalmente — en la clase más interesada en los datos que usa.
🔧 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: G17/G18: Pregunta qué clase está más interesada en estos datos. Mueve el método allí.
✗ Tu versión