Voglio implementare la mia prossima applicazione con pattern MVP, quindi ho iniziato a leggere alcuni articoli su come dovrebbe essere implementato. Il problema principale per me è che ci sono diversi approcci a questo modello. Alcuni dicono che dovremmo trattare l'attività come una visione, ma alcuni altri che l'attività dovrebbe essere un presentatore.MVP Android: un'attività deve essere una visualizzazione o un relatore?
L'attività come una vista è descritta qui: MVP Android e ha senso. Ma d'altra parte ho trovato questa risposta con qualche upvotes https://stackoverflow.com/a/7609943 e qualcuno dice che l'attività dovrebbe essere un presentatore.
Qualcuno ha un'esperienza con questo modello?
View non suggerisce sottostante dettagli di implementazione. Una vista è solo un'astrazione che può essere implementata in molti modi (una vista GWT, una vista finta, una vista basata su Android).Penso davvero che un'attività in Android sia più vicina alla vista, perché l'attività tende a conoscere i dettagli dell'implementazione (XML di layout sottostante, ecc.). Nei test unitari, avere il Presenter come un'attività, ti lega strettamente all'ambiente Android mentre un presentatore agnostico a livello di vista separato offre molta più flessibilità (puoi facilmente testare i tuoi presentatori usando 'mvn test' in questo modo). –
Quindi cosa proponi come presentatore? –
Come ho detto sopra, il presentatore dovrebbe essere un intermediario indipendente dal livello di vista. Ad esempio, può essere una semplice classe che fa riferimento a un modello e una vista tramite interfacce nel suo caso più semplice e può dettare l'interazione e il flusso di lavoro tra il modello e la vista. Supponiamo di avere un presentatore che può essere facilmente riutilizzato per diversi ambienti: Android, GWT, ecc. –