Model-view-presenters e interazioni dell'utente che coinvolgono finestre di dialogo separate

1

Ho un modulo UI scritto usando model-view-presenter che ha, tra le altre cose, una listbox contenente un numero di oggetti di dominio diversi. Il modulo contiene anche un pulsante aggiungi / aggiorna che apre una finestra di dialogo che consente all'utente di aggiungere / aggiornare un oggetto dominio.

Il modulo oggetto dominio è generale e viene utilizzato per raccogliere informazioni di base, come il nome dell'oggetto. Si tratta essenzialmente di un umile dialogo che raccoglie informazioni e invia un evento con tali informazioni quando il modulo viene chiuso correttamente consentendo all'oggetto dominio di essere aggiunto o aggiornato di conseguenza.

Per chiarire un po 'di più, non sono sicuro in una serie di aree diverse:

  • Esiste un modello di interazione standard o ci sono schemi di interazione standard da utilizzare tra le UI quando si utilizza MVP?
  • La responsabilità per la visualizzazione di qualsiasi modulo o finestra di dialogo richiesti spetta al presentatore, alla vista o a nessuno dei due?
  • Il fatto che io stia usando un umile dialogo per la raccolta di informazioni viola "raccontare, non chiedere" e rendere le cose più difficili del necessario?
  • L'interfaccia utente della risposta è specifica e, in tal caso, quali domande potrebbero guidarmi a una buona risposta?

Altre note:

  • Sembra che la responsabilità di visualizzare i moduli e i dialoghi richiesti sia più legata alla vista che al presentatore, in quanto altri punti di vista potrebbero utilizzare mezzi alternativi per raccogliere tali informazioni: il relatore deve solo essere opportunamente avvisato.
  • Sono più interessato ai modelli e alle pratiche correlate rispetto ai dettagli tecnici.
  • Nello spirito di basso accoppiamento, di solito utilizzo il passaggio di messaggi tra moduli e componenti.
posta Kaleb Pederson 23.03.2011 - 23:07
fonte

1 risposta

2

Non ho lavorato con MVP, ma ho lavorato con MVVM che mi è stato detto simile. In MVVM il codice per mostrare e nascondere la finestra di dialogo viene eseguito in ViewModel (Presenter)

Non sono sicuro di quanto MVP strettamente correlato sia con MVVM in termini di interfaccia utente, ma ecco un esempio di MVVM:

Seleziona un elemento in un menu a discesa e premi Modifica

Esegue un comando sul ViewModel che determina quale EditableObject deve mostrare e imposta la proprietà EditingObject su quell'oggetto.

Se EditingObject è un ViewModel, conterrà i propri comandi di salvataggio / chiusura. In caso contrario, ViewModel imposta altre proprietà di tipo ICommand su quali sarebbero i comandi di salvataggio / chiusura.

L'interfaccia utente ha qualcosa che ascolta la proprietà di EditingObject, quindi quando cambia, solleva il popup contenente le informazioni di EditingObject. I pulsanti a comparsa come Salva / Chiudi sono associati ai comandi Salva / Chiudi di EditingObject o ai comandi Salva / Chiudi di ViewModel principale, a seconda di come vengono creati gli oggetti.

    
risposta data 25.03.2011 - 16:05
fonte

Leggi altre domande sui tag