283 votes

Quels sont les modèles d'architecture utilisés sur Android ?

Je fais une petite recherche sur les plates-formes mobiles et j'aimerais savoir quels modèles de conception sont utilisés dans Android ?

Par exemple, dans iOS, le modèle-vue-contrôleur est très largement utilisé avec la délégation et d'autres modèles.

Quels modèles et quels endroits en particulier Android utilise-t-il ?

EDIT

Je ne demande pas les modèles de conception utilisés dans le noyau, dalvik et ainsi de suite, mais les modèles qu'un développeur d'applications rencontrera lors du développement d'une application.

2 votes

Étant donné que la plate-forme Android intègre un noyau Linux, il s'agit d'une suite logicielle beaucoup trop vaste pour répondre à cette question autrement que par "tous les modèles cités jusqu'à présent, et probablement quelques nouveaux si vous regardez attentivement".

5 votes

@Pete, Ok, vous avez probablement raison, mais en même temps, je ne vais pas aussi loin que le noyau, je suis intéressé par la surface de l'application, par exemple dans iOS. UIViewController mis en œuvre en utilisant MVC ( UIViewController est un contrôleur et sa Racine UIView est vue), UIApplication utilise la délégation en ayant le délégué d'application comme délégué et ainsi de suite...

4 votes

Je pense que vous devriez vraiment apprendre Android à partir de la base et ne pas essayer de "porter" vos connaissances d'iOS à Android. Il y a beaucoup de bons livres sur le marché. Apress en fait un tas. Si vous comprenez le cycle de vie des applications et des services dans Android, vous devriez être capable de concevoir des applications correctement.

19voto

Jacob Abraham Points 49

Les classes Android suivantes utilisent des modèles de conception

1) View Holder utilise le modèle de conception Singleton.

2) Le modèle de conception des usines d'utilisation de l'intention

3) L'adaptateur utilise le modèle de conception de l'adaptateur

4) Le récepteur de diffusion utilise le modèle de conception Observer.

5) La vue utilise le modèle de conception composite

6) Media FrameWork utilise le modèle de conception de façade (Façade Design Pattern)

11voto

Jeff T. Points 954

En el Notifications l'affaire, le NotificationCompat.Builder utilise Modèle de construction

comme,

mBuilder = new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_stat_notification)
                    .setContentTitle(getString(R.string.notification))
                    .setContentText(getString(R.string.ping))
                    .setDefaults(Notification.DEFAULT_ALL);

7voto

amarnathpatel Points 712

Android utilise également le modèle de conception ViewHolder.

Il est utilisé pour améliorer les performances d'un ListView lors de son défilement.

Le modèle de conception ViewHolder vous permet d'accéder à chaque vue d'élément de liste sans avoir à effectuer de recherche, ce qui permet d'économiser de précieux cycles de traitement. Plus précisément, il évite les appels fréquents de findViewById() pendant le défilement de la ListView, ce qui le rendra plus fluide.

5voto

Cheng Points 77

Tous ces modèles, MVC, MVVM MVP, et Modèle de présentation peut être appliqué aux applications Android, mais sans un cadre tiers, il n'est pas facile d'obtenir une structure bien organisée et un code propre.

MVVM est issu de PresentationModel. Lorsque nous appliquons MVC, MVVM y Modèle de présentation pour une application Android, ce que nous voulons vraiment c'est avoir un projet clairement structuré et surtout plus facile pour les tests unitaires.

À l'heure actuelle, sans framework tiers, vous avez généralement beaucoup de code (comme addXXListener(), findViewById(), etc.), qui n'ajoute aucune valeur commerciale. ), qui n'apporte aucune valeur ajoutée à l'entreprise. De plus, vous devez exécuter des tests unitaires Android au lieu de tests JUnit normaux, ce qui prend des heures et rend les tests unitaires peu pratiques.

Pour ces raisons, il y a quelques années, nous avons lancé un projet open source, RoboBinding - Un cadre de modèle de présentation lié aux données pour la plate-forme Android. RoboBinding vous aide à écrire du code d'interface utilisateur qui est plus facile à lire, à tester et à maintenir. RoboBinding supprime le besoin de code inutile comme addXXListener ou autre et déplace la logique de l'interface utilisateur vers le modèle de présentation, qui est une POJO et peut être testé via tests JUnit normaux . RoboBinding lui-même est livré avec plus de 300 tests JUnit pour garantir sa qualité.

2voto

Je voudrais ajouter un modèle de conception qui a été appliqué dans Android Framework. Il s'agit du modèle Half Sync Half Async utilisé dans l'implémentation d'Asynctask. Voir ma discussion à

https://docs.google.com/document/d/1_zihWXAwgTAdJc013-bOLUHPMrjeUBZnDuPkzMxEEj0/edit?usp=sharing

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X