The "And" Test
El Test del "Y"
Describe what a class does. If the description requires the word "and", split the class. A UserService that validates users and sends emails and formats reports has three responsibilities.
Describe lo que hace una clase. Si la descripción requiere la palabra "y", divide la clase. Un UserService que valida usuarios y envía correos y formatea informes tiene tres responsabilidades.
The Change Reason Test
El Test de la Razón de Cambio
A class has too many responsibilities if multiple different stakeholders — the DBA, the UI team, the business analyst — would each request changes to it. SRP: a class should have only one reason to change.
Una clase tiene demasiadas responsabilidades si múltiples partes interesadas diferentes — el DBA, el equipo de UI, el analista de negocio — cada uno solicitaría cambios en ella. SRP: una clase debe tener una sola razón para cambiar.
✏️
Code Challenge
Desafío de Código
Apply the 'and' test to split the overloaded class.
Aplica el test del 'y' para dividir la clase sobrecargada.
💡 Key takeaway
Small, focused classes are easier to name, test, and reuse. If you struggle to name a class, it probably does too much.
Las clases pequeñas y enfocadas son más fáciles de nombrar, probar y reutilizar. Si te cuesta nombrar una clase, probablemente hace demasiado.