La excelencia no es un acto, sino un hábito. En esta sección final, te presentamos un Reto Maestro que integra todas las habilidades de razonamiento que hemos cultivado.
Antes de la rúbrica, identifica los “pecados arquitectónicos” en este flujo para el Gestor de Cine. Este diagrama está mal diseñado a propósito.
Tu Misión: No toques el teclado. Saca una hoja de papel y redibuja este flujo eliminando las dependencias prohibidas.
sequenceDiagram
participant V as Vista (JComboBoxAsientos)
participant M as Modelo (CalculosCine)
Note over V,M: ERROR 1: Salto de capas directo
V->>M: calcularTotal(txtCantidad)
Note right of M: El modelo recibe el JTextField?
M->>M: validarPositivo(txtCantidad.getText())
M-->>V: showMessageDialog("Error en Cantidad")
Note over V,M: ERROR 2: El Modelo maneja la UI
Identifica qué atributos y métodos faltan en el Modelo para procesar el “Cargo de Estreno” y las validaciones.
classDiagram
class ReservaVista {
+getTipoAsiento()
+getCantidad()
}
class ReservaModelo {
-tipo: String
-cantidad: int
+getPrecioBase()
%% ¿Dónde está la lógica del 15%?
%% ¿Dónde está la validación de cantidad?
+calcularTotal() ?
}
class ReservaControlador {
%% ¿A quién escucha?
%% ¿A quién actualiza?
}
ReservaControlador --> ReservaVista
ReservaControlador --> ReservaModelo
Este flujo intenta calcular el total, pero falta la orquestación del Controlador.
sequenceDiagram
participant V as Vista
participant C as Controlador
participant M as Modelo
V->>C: Evento: Botón click
C->>V: getDatos()
Note over C,M: ¡HUECO CRÍTICO!
%% ¿Qué debería pasar aquí?
M-->>C: totalCalculado
C-->>V: mostrarResultado(total)
sequenceDiagram
participant V as Vista
participant C as Controlador
participant M as Modelo
Note over V,C: El Usuario hace clic en "Calcular"
V->>C: Cuerda de Evento (actionPerformed)
C->>V: getTipo(), getCantidad(), esEstreno()
C->>M: setDatos(tipo, cant, estreno)
alt es válido
C->>M: calcularTotal()
M-->>C: totalCalculado
C->>V: setTotal(totalCalculado)
else error de validación
C->>V: mostrarError("Dato inválido")
end
Mayoría DA (Destacado): Posees una visión de arquitecto. Tienes la disciplina para separar lo visual de lo lógico, permitiéndote escalar a arquitecturas modernas. Tu código en el Reto del Cine será limpio, testeable y profesional.
Mayoría AA (Aceptable): Dominas la técnica pero a veces la ansiedad por codificar te hace saltar pasos de diseño. Tu código funciona, pero la lógica aún tiene ligeras dependencias de la UI que dificultan el mantenimiento.
Mayoría PA (En Proceso): Comienzas a ver las capas, pero el “cableado” de eventos sigue siendo confuso. Practica redibujando los diagramas de secuencia; si el dibujo está mal, el código también lo estará.
Mayoría NA (No Alcanzado): Estás atrapado en un paradigma monolítico donde todo ocurre dentro del botón. Vuelve a la sección de Paradigma de Razonamiento y concéntrate en separar el “Cómo se ve” del “Qué hace”.