Junior — Middle
Quelle est la différence dans les méthodes de communication entre View et ses modèles : ViewModel et View, ainsi que Presenter et View ?
sobes.tech IA
Réponse de l'IA
Dans l’architecture Android, la relation entre View et ses modèles (ViewModel et Presenter) diffère par la manière d’interagir et par la responsabilité :
-
View et ViewModel (MVVM)
- ViewModel ne contient pas de références à View, ce qui assure une faible couplage.
- ViewModel fournit des données via des objets observables (par exemple, LiveData), auxquels View s’abonne.
- Les changements dans les données se reflètent automatiquement dans View via des observateurs.
- ViewModel ne connaît pas la mise en œuvre concrète de View, ce qui facilite les tests.
-
Presenter et View (MVP)
- Presenter a une référence à View via une interface.
- View appelle les méthodes de Presenter, et Presenter met à jour View directement via l’interface.
- La relation est plus rigide, et Presenter gère la logique d’affichage.
Exemple :
MVVM :
viewModel.data.observe(this) { data ->
view.update(data)
}
MVP :
interface View {
fun showData(data: String)
}
class Presenter(val view: View) {
fun loadData() {
val data = "..."
view.showData(data)
}
}
Ainsi, MVVM est orienté vers la mise à jour réactive via des observateurs, tandis que MVP se concentre sur la gestion directe de View via l’interface Presenter.