Mise à jour de novembre 2018
Après avoir travaillé et blogué sur MVC et MVP dans Android pendant plusieurs années (voir le corps de la réponse ci-dessous), j'ai décidé de capturer mes connaissances et ma compréhension sous une forme plus complète et facilement digestible.
J'ai donc publié un cours vidéo complet sur l'architecture des applications Android. Donc, si vous souhaitez maîtriser les modèles architecturaux les plus avancés du développement Android, consultez ce cours complet ici .
Cette réponse a été mise à jour afin de rester pertinente en novembre 2016
Il semble que vous recherchiez des motifs architecturaux plutôt que des motifs de conception .
Les modèles de conception visent à décrire une «astuce» générale que le programmeur pourrait mettre en œuvre pour gérer un ensemble particulier de tâches logicielles récurrentes. Par exemple: dans la POO, lorsqu'un objet doit notifier un ensemble d'autres objets de certains événements, le modèle de conception d'observateur peut être utilisé.
Étant donné que les applications Android (et la plupart des AOSP) sont écrites en Java, qui est orienté objet, je pense que vous aurez du mal à rechercher un modèle de conception OOP unique qui n'est PAS utilisé sur Android.
Les modèles architecturaux , en revanche, ne traitent pas de tâches logicielles particulières - ils visent à fournir des modèles d'organisation logicielle basés sur les cas d'utilisation du composant logiciel en question.
Cela semble un peu compliqué, mais j'espère qu'un exemple clarifiera: si une application est utilisée pour extraire des données d'un serveur distant et les présenter à l'utilisateur de manière structurée, alors MVC pourrait être un bon candidat à considérer. Notez que je n'ai rien dit sur les tâches logicielles et le déroulement du programme de l'application - je viens de le décrire du point de vue de l'utilisateur, et un candidat pour un modèle architectural a émergé.
Puisque vous avez mentionné MVC dans votre question, je suppose que les modèles architecturaux sont ce que vous recherchez.
Historiquement, Google n'avait aucune directive officielle sur les architectures des applications, ce qui (entre autres raisons) a conduit à un désordre total dans le code source des applications Android. En fait, même aujourd'hui, la plupart des applications que je vois ne suivent toujours pas les meilleures pratiques de POO et ne montrent pas une organisation logique claire du code.
Mais aujourd'hui, la situation est différente - Google a récemment publié la bibliothèque Data Binding , qui est entièrement intégrée à Android Studio, et a même déployé un ensemble de plans d'architecture pour les applications Android .
Il y a deux ans, il était très difficile de trouver des informations sur MVC ou MVP sur Android. Aujourd'hui, MVC, MVP et MVVM sont devenus des «mots à la mode» dans la communauté Android, et nous sommes entourés d'innombrables experts qui essaient constamment de nous convaincre que MVx est meilleur que MVy. À mon avis, discuter si MVx est meilleur que MVy est totalement inutile parce que les termes eux-mêmes sont très ambigus - regardez simplement les réponses à cette question , et vous vous rendrez compte que différentes personnes peuvent associer ces abréviations à des constructions complètement différentes.
Étant donné que la recherche du meilleur modèle architectural pour Android a officiellement commencé, je pense que nous sommes sur le point de voir plusieurs autres idées apparaître. À ce stade, il est vraiment impossible de prédire quel modèle (ou modèles) deviendra les normes de l'industrie à l'avenir - nous devrons attendre et voir (je suppose que c'est une question d'un an ou deux).
Cependant, il y a une prédiction que je peux faire avec un haut degré de confiance: l'utilisation de la bibliothèque de liaison de données ne deviendra pas une norme de l'industrie. Je suis confiant de le dire parce que la bibliothèque de liaison de données (dans son implémentation actuelle) fournit des gains de productivité à court terme et une sorte de directive architecturale, mais elle rendra le code non maintenable à long terme. Une fois que les effets à long terme de cette bibliothèque feront surface - elle sera abandonnée.
Maintenant, bien que nous ayons une sorte de directives et d'outils officiels aujourd'hui, personnellement, je ne pense pas que ces directives et outils soient les meilleures options disponibles (et ce ne sont certainement pas les seules). Dans mes applications, j'utilise ma propre implémentation d'une architecture MVC. Il est simple, propre, lisible et testable, et ne nécessite aucune bibliothèque supplémentaire.
Ce MVC n'est pas seulement cosmétiquement différent des autres - il est basé sur une théorie selon laquelle les activités dans Android ne sont pas des éléments d'interface utilisateur , ce qui a d'énormes implications sur l'organisation du code.
Donc, si vous cherchez un bon modèle architectural pour les applications Android qui suit les principes SOLID , vous pouvez en trouver une description dans mon article sur les modèles architecturaux MVC et MVP dans Android .