Sto cercando di capire come implementare il buon disaccoppiamento tra un'interfaccia utente e il modello, ma non riesco a capire esattamente dove suddividere le linee.
Ho visto Model-View-Presenter, ma non sono sicuro di come implementarlo. Ad esempio, la mia vista ha più finestre di dialogo ..
- Dovrebbe esserci una classe View con istanze di ciascuna finestra di dialogo? In tal caso, in che modo i dialoghi dovrebbero interagire con Presenter? vale a dire. se una finestra di dialogo individuale ha bisogno di richiedere dati dal Modello tramite il Presenter, come dovrebbe la finestra di dialogo ottenere un riferimento al Presenter? Tramite un riferimento alla vista fornita durante la costruzione?
- Stavo pensando che forse la vista dovrebbe essere una classe statica? Quindi le finestre di dialogo di GetView e ottenere il Presenter da lì ...
- Stavo pensando di configurarlo con la proprietà della vista e del modello (a differenza della vista che ha il presentatore e il presentatore con il modello) e il presentatore che registra i callback per gli eventi nella vista, ma questo lo rende sembra molto più accoppiato (o la lingua è dipesa, almeno.)
Sto cercando di:
- rendilo il più disaccoppiato possibile
- idealmente rendono possibile accoppiare Presenter / Modello con Views of other languages (non ho fatto un sacco di roba inter-lingua, ma so che è possibile, in particolare più
void(void)
su cui posso attenermi, a almeno un'app C # con una libreria C ++ ... - mantieni il codice pulito e semplice
Quindi ... qualche suggerimento su come devono essere gestite le interazioni?