Un Transaction Script es un patrón de diseño en el que se organiza la lógica de negocio en procedimientos. Cada procedimiento maneja una solicitud del usuario de principio a fin.
Este patrón es ideal para aplicaciones con requisitos de negocio relativamente sencillos o cuando se trabaja en un proyecto que no se espera que crezca en complejidad.
Debemos escribir un programa para manejar el proceso de inscripción de un estudiante en un curso.
Usando un Transaction Script podría quedar de la siguiente manera:
public class InscripcionCurso {
public void inscribirEstudiante(String estudianteId, String cursoId) {
// Verificar si el estudiante ya está inscripto en el curso
boolean yaInscripto = verificarInscripcion(estudianteId, cursoId);
if (yaInscripto) {
throw new IllegalStateException(“El estudiante ya está inscripto en el curso.”);
}
// Inscribir al estudiante en el curso
inscripcionBD(estudianteId, cursoId);
// Actualizar el total de estudiantes inscriptos en el curso
actualizarTotalInscriptos(cursoId);
// Enviar confirmación de inscripción al estudiante
enviarConfirmacion(estudianteId, cursoId);
}
// Métodos auxiliares como verificarInscripcion, inscripcionBD, actualizarTotalInscriptos, enviarConfirmacion
// serían implementados aquí…
}
Este script maneja todo el proceso de inscripción, desde verificar si el estudiante ya está inscripto, hasta enviar una confirmación de inscripción, siguiendo un flujo claro y directo.
Transaction Script es un patrón útil para aplicaciones simples o como punto de partida rápido para proyectos. Sin embargo, a medida que la aplicación crece en complejidad, sería mejor considerar otros patrones, como Domain Model.
La clave está en evaluar las necesidades y elegir el enfoque que mejor se adapte a la situación.