Foro de Consultas

Consulta TP N° 5

Consulta TP N° 5

de JUAN JOSUE BARRIONUEVO -
Número de respuestas: 1

Hola profesor buenas tardes, durante el desarrollo del trabajo me surgio la siguiente duda con respecto a las validaciones de los clientes y las compras, las adjunto abajo:

Registrar clientes de los tipos indicados validando lo siguiente:

b.que el eMail tenga el formato correspondiente

c. que si se trata de un cliente con cuenta corriente el límite de dinero mensual
debe ser mayor a cero
d.​ que si se trata de un cliente de grandes compras el porcentaje debe estar
comprendido entre [0, 1]

2.​ Registrar compras para los tipos de clientes indicados validando lo siguiente:
a.​ que el importe sea mayor que cero.
b.​ que si se trata de un cliente con cuenta corriente el importe de la compra no
supere el límite mensual.

Mi duda es, ¿estas validaciones las hacemos en el constructor de cada clase o los respectivos managers de cada clase? yo estaba pensando en hacer las validaciones en el constructor, porque si no lo hago alli estaria permitiendo la existencia de un objeto con datos que no son correctos, o valido a un objeto que ya posee datos incorrectos con su respectivo manager?

Gracias.

En respuesta a JUAN JOSUE BARRIONUEVO

Re: Consulta TP N° 5

de José Zapana -
Buenas
Voy a aprovechar su consulta para repetir algo que mencioné en alguna de las clases de teoría y es en relación a las clases utilitarias y las clases Helpers. Un helper se refiere a una clase o conjunto de métodos que asisten o complementan otras clases en tareas específicas, generalmente repetitivas o auxiliares, pero que no forman parte del núcleo de la lógica de negocio.

¿Qué caracteriza a una clase helper?

  • Propósito auxiliar: Realiza tareas como validaciones, cálculos simples, formateo de datos, etc.
  • Reutilizable: Puede ser usada por múltiples clases dentro del mismo proyecto.
  • Puede tener estado: A diferencia de las clases utility (que suelen ser estáticas y sin estado), una helper puede tener atributos y métodos de instancia.
  • Ejemplo típico: Una clase PriceHelper que calcula descuentos o precios finales, usada por una clase Order.

Entonces ¿a donde deben ir las validaciones?, en el constructor NO, ya que le estaríamos sumando una responsabilidad que no le corresponde. La definición de arriba creo que deja en claro a donde poner cada cosa, por ejemplo la validación de formato email podría ir en una clase utility y el resto probablemente en su manager o Helper 

saludos