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.

Calistenia de Objetos80 XP8 min

No Uses Getters/Setters/Properties

Di, no preguntes — en lugar de obtener datos para tomar decisiones fuera del objeto, dile al objeto qué hacer y déjalo usar sus propios datos.

Por qué importa

Los getters y setters son campos públicos con disfraz. Cuando el llamante lee el saldo, lo suma y lo escribe de vuelta, la regla de negocio (el monto del depósito debe ser positivo, el saldo nunca debe ir negativo) está dispersa en cada sitio de llamada. Cuando el objeto posee esa regla por completo — a través de un método deposit() — nunca puedes romperla desde afuera. Este es el núcleo del principio "Tell, Don't Ask".

Desafío de Código

Estudia el código desordenado, intenta refactorizarlo y luego revela la versión limpia.

💡Conclusión clave

Reemplaza getters y setters con métodos que describan intención — deposit(), withdraw(), promote(). Las reglas de negocio viven dentro del objeto y nunca pueden eludirse desde afuera.

🔧 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: Cada getter que alimenta un if es un comportamiento que pertenece dentro del objeto que está siendo interrogado.

✗ Tu versión

No Uses Getters/Setters/Properties — CleanKata — CleanKata