Sto costruendo un'app per Android tramite MVP e ho una domanda su questo modello.Presentatore vista modello - stessa vista, diversi presentatori
Dire che ho una schermata per creazione di una nuova persona. Questa schermata mostrerà uno EditText
per l'inserimento del nome, un altro per il cognome, uno ImageView
per mostrare l'immagine della foto selezionata, ecc. Ciò porterà a un'interfaccia View
, implementata dallo Fragment
. Collaborerà con un'interfaccia Presenter
, implementata da un'altra classe.
Fine.
Ora ho un'altra funzionalità: una schermata per che modifica una persona esistente. In questo caso, lo View
per questa funzione è identico a quello per la creazione di una nuova persona. Tuttavia, lo Presenter
è diverso. Si avvierà caricando la persona esistente da db per pre-compilare la vista con i dati correnti e l'azione sul database quando si fa clic su "Salva" sarà un aggiornamento anziché un inserimento.
Quindi, penso che questo sia un esempio di MVP in cui una vista funziona con diverse implementazioni del relatore per ottenere diversi casi d'uso.
pensi che questo è un presupposto corretto, o pensi caratteristiche differenti dovrebbero avere diversi
View
ePresenter
interfacce?Inoltre, se aveste un comune
View
e diversoPresenters
, sarà l'attuazione delView
essere comune, o sarebbe portare alla stessa interfaccia implementata da due classi? In pratica, vedo due opzioni.Avere un solo
Fragment
attuazione delView
. A seconda che l'utente stia per creare una nuova persona o aggiornare una esistente, il Frammento dovrebbe ricevere e utilizzare un Presenter diverso.Avere due
Fragment
s. Ognuno di questi istanzia un diversoPresenter
. Utilizzare la composizione o l'ereditarietà per evitare la replica del codice tra i due frammenti.
Cosa pensi sia meglio fare in questi casi?
Grazie.
Penso che tu sia sulla buona strada. –
È possibile condividere lo stesso 'View' e avere solo un' Fragment' che riceve un 'Presenter' diverso a seconda del suo scopo (modificare o creare). – pdegand59