Model-View-Presenter (MVP) è un modello di progettazione ben noto per le applicazioni GUI. Per Android, l'implementazione della logica di business in un semplice modulo Java facilita il test senza richiedere un emulatore Android.Difficoltà nell'implementazione di Model-View-Presenter in Android
Tuttavia, sto avendo difficoltà di attuazione del modello su Android a causa dei requisiti speciali per l'interfaccia grafica delle applicazioni Android:
per attivitá può essere distrutto in qualsiasi punto (chiamata in arrivo, l'utente preme il tasto di casa, ...), e quando ricreato dovrebbe essere nello stesso identico stato di quando è stato lasciato. Questo è diverso dalla maggior parte delle altre applicazioni GUI.
Un'attività può attraversare molti stati del ciclo di vita. Potrebbe essere sospeso, nel qual caso l'interfaccia utente dell'attività non dovrebbe essere modificata. Se per esempio alcuni dati vengono caricati in background, non possono essere consegnati alla parte View di MVP (Activity) se si trova in uno stato di pausa. Ancora una volta, questo è un requisito insolito.
Ho letto il post sul blog MVP for Android e guardò il example source code. L'obiettivo finale che sto cercando di ottenere utilizzando il pattern MVP è di essere in grado di tradurre tutte le logiche di business in Objective-C utilizzando il transpiler j2objc, in modo che la logica di business possa essere riutilizzata mentre si implementa la stessa app su iOS.
C'è qualcuno che ha implementato correttamente il pattern MVP per Android e, in tal caso, cosa mi manca?
Quello che mi chiedo: se il tuo modulo di business logic è semplicemente java senza bisogno di un 'Context', perché il tuo ciclo di vita' Activity' è importante? In altre parole, perché questi particolari requisiti della GUI sono un problema? – Blacklight
Se la parte 'Visualizzazione' di MVP non può essere aggiornata in determinati punti (quando è in pausa), il' Presenter' o il 'Modello' non lo sanno? E il 'Modello' non dovrebbe essere creato in modo tale che possa essere ripristinato in un secondo momento? – foens
Si potrebbe sostenere che l'attività è responsabile della gestione del ciclo di vita e dell'impostazione/sospensione/demolizione del relatore secondo necessità. Il presentatore non è il più saggio per le peculiarità della struttura dell'interfaccia utente dipendente dal sistema. – dcow