Da quando ho imparato a conoscere MVC, l'ho usato per ogni app che ho fatto (che probabilmente non è l'idea migliore, ma non è l'argomento di questa domanda). Tutte piccole, 1000 app LoC. Sto usando Java e Swing per la GUI.
Ciò che di solito accade è questo:
La vista (la classe della GUI) riporta al controller qualsiasi evento della GUI (più comunemente un clic del pulsante) eseguito. Ad esempio quando viene premuto un pulsante, la vista chiama semplicemente controller.someButtonPressed()
o controller.someOtherButtonPressed()
. È solo una reazione all'input dell'utente che sta segnalando al controller, nient'altro.
Questo, penso, va bene ed è l'implementazione corretta di MVC View. La parte su cui ho dei dubbi è la seguente:
Nei metodi someButtonPressed()
del controller, molto spesso semplicemente delega al modello.
Ad esempio:
public void someButtonPressed(){
model.doTheAppropriateThing();
}
Niente di più. Nessun "processo decisionale" o "interpretazione" effettiva di ciò che la vista ha riferito. Molto spesso, solo una semplice delega al modello.
È considerato ragionevole quando si implementano le strutture MVC e in particolare i controller, per avere il controller spesso semplicemente delegato direttamente al modello in reazione agli eventi della GUI? Oppure questo segnale che forse sto facendo qualcosa non va?