2016-05-08 23 views
5

Sto utilizzando il modello di progettazione MVP. I modelli che sto presentando al mio punto di vista sono POJOS attualmente che sono modelli per il mio database Realm locale. Detto questo, hanno membri annotati pertinenti al database. Sarebbe meglio usare il relatore per mappare i modelli di DB restituiti dall'interactor ai modelli che contengono solo i dati che la vista dovrebbe utilizzare (avere un modello POJO separato per la mia vista)? O è una buona pratica dare la vista ai miei modelli db?MVP Android - Quale modello presentare per visualizzare

Grazie.

risposta

2

La domanda che bisogna porsi è

Se ho rimosso Reame dalla mia app avrei dovuto apportare modifiche al mio vista se uso questi classi di entità

Se la risposta è no, quindi non vedo alcun problema con l'utilizzo di quelle entità per passare alla tua vista. Se tuttavia sono legati al Reame in modo tale da dover cambiare la visualizzazione, ciò interromperà l'idea disaccoppiata di MVP.

Personalmente, piuttosto spesso realizzo un ViewModel. Il motivo è che voglio ridurre al minimo il numero di chiamate separate tra il mio Presenter e il mio View. Idealmente la visualizzazione dovrebbe essere il più vicino possibile ad avere i metodi:

setLoadingUi(); 
setContentUi(ViewModel model); 
setEmptyUi(); 
setErrorUi(); 

Anche se questo non è sempre possibile se si dispone di vari vista chiamate quali setConfirmButtonText che lega il vostro presentatore nel sapere troppo sulla tua View. Cosa succede quando cambi il pulsante per un colpo ... il tuo Presenter dovrebbe cambiare così come la tua Vista.

Spero che questo aiuti!