2015-12-09 9 views
6

Sto provando a seguire lo schema MVP. Tuttavia, ho qualche dubbio su come gestire gli adattatori e visualizzare i titolari su questo modello.Adattatore come presentatore? O parlare con un presentatore? Android e MVP

Devo utilizzare l'adattatore come presentatore? Avere la logica del business?

Oppure devo passare un'istanza del presentatore che gestisce la logica dell'elenco e quindi chiamare i metodi del presentatore quando c'è un'interazione con gli elementi dell'adattatore?

Grazie

+0

Penso che gli adattatori vista Android sono puramente roba V-campo di applicazione, e se le schede sono presentatori - questi presentatori sono da qualche parte interna in un'implementazione vista . Inoltre, i presentatori non dovrebbero contenere la logica aziendale in quanto sono solo mediatori tra M e V. Nel mio attuale progetto basato su MVP, i relatori non sono affatto a conoscenza degli adattatori di lista poiché non dovrebbero preoccuparsi di come viene visualizzata una lista di qualcosa_ (ad es. un relatore spiega una vista: "mostra percorsi in qualche modo", e ascolta solo un evento vista "onRouteSelected" poiché il percorso può essere ottenuto da qualsiasi tipo di widget, non necessariamente da una lista). –

+1

Quindi, hai un riferimento a un presentatore all'interno dell'adattatore? O aggiungi ascoltatori agli eventi degli adattatori e poi reindirizza al [email protected] –

+0

Sì, il secondo caso: gli adattatori possono interagire con le viste di hosting e quindi una vista particolare decide come trasformare/delegare un evento a un presentatore (o un listener di presentatore - dipende da come si separano le interfacce di presentatori e ascoltatori). –

risposta

3

Non c'è esatto/definizione corretta di attuazione MVP in Android

Per rispondere alla tua domanda, a mio avviso il Presenter non avrebbe alcuna logica Android.

Come tale, il Adapter sarebbe un "View" allora cioè presentatore prevede che i dati (attraverso il Activity o Fragment) e si occupa solo con il modo di presentare questo.

Vorrei fare MVP come segue.

  1. Modello - POJO di, analisi, Memorizzazione (SqlLite) e il recupero dei dati (http). Ovviamente dividerei il POJO, l'analisi e la logica DB in sottocartelle - ma tutto questo ricade in Model per me.

  2. View-Activity, Fragment, Adapters - Attività & Frammento attesa riferimento ad un presentatore che dà loro dati da visualizzare. Come vengono visualizzati questi dati/messaggi, aspetto + tatto ecc. Viene trattato nel View.

  3. Presenter - L'uomo di mezza, fornisce la logica agli ingressi cioè Clic dei pulsanti, il recupero dei dati, la validazione degli input & passa quindi il risultato di nuovo alla vista (Activity o Fragment)

Ecco un grande articolo su MVP

Ecco una semplificata diagram di MVP

enter image description here

risposta modificato da questa question (risposto anche da me)

Problemi correlati