02. CalculadoraController
Clase CalculadoraController
Section titled “Clase CalculadoraController”El controlador actúa como el “pegamento” o mediador del sistema. Su responsabilidad principal es orquestar la creación de objetos y asignar los manejadores de eventos.
Implementación de Orquestación
Section titled “Implementación de Orquestación”package calculadora.Controladores;
import calculadora.Controladores.Eventos.*;import calculadora.Modelos.Historial;import calculadora.Vistas.CalculadoraVista;import calculadora.Vistas.HistorialVista;
public class CalculadoraController { private CalculadoraVista cv; private Historial historial;
public CalculadoraController(){ cv = new CalculadoraVista(); historial = new Historial(); insertarEventos(); }
public void insertarEventos(){ cv.getBtnSuma().addActionListener(new SumaEventButton(cv, historial)); cv.getBtnResta().addActionListener(new RestaEventButton(cv, historial)); cv.getBtnMulti().addActionListener(new MultiEventButton(cv, historial)); cv.getBtnDiv().addActionListener(new DivEventButton(cv, historial)); cv.getBtnHistorial().addActionListener(new AbrirHistorialButton(historial, new HistorialVista())); }}Flujo de Trabajo
Section titled “Flujo de Trabajo”- Instanciación: En el constructor, crea la vista principal (
CalculadoraVista) y la fuente de datos (Historial). - Inyección de Dependencias: Al crear los eventos, les “pasa” las referencias necesarias (la vista o el historial) para que puedan trabajar.
- Cableado: Utiliza
addActionListenerpara conectar la lógica desacoplada de los eventos con los botones físicos de la interfaz.
Este patrón permite que si el diseño de la calculadora cambia, el controlador solo necesite actualizar el “cableado”, sin tocar la lógica matemática.