Nom d'activité Android

Je rencontre de plus en plus d'affrontements entre les activités d'Android et d'autres classes. Je me demandais si vous pouviez me dire comment vous les éviter. Malheureusement, mes problèmes de dénomination particuliers ne sont pas abordés dans les questions connexes sur SO.

Premier exemple

  • Le point d'observation variable ne fonctionne pas dans les projets Android d'Eclipse / ADT
  • Différence entre Phonegap et Sencha Touch
  • Quelle est la limite de taille de la pile de threads UI Android et comment la surmonter?
  • Android: clonage d'un dessinable afin de créer un StateListDrawable avec des filtres
  • Difficultés à implémenter Model-View-Presenter dans Android
  • Filtrer les balises dans LogCat (dans le plug-in Eclipse d'Android)
  • J'ai une activité qui affiche un niveau de jeu. Cependant, les données requises pour ce niveau (objets d'arrière-plan, entités, etc.) sont stockées dans une classe distincte. Naturellement, j'appellerais le dernier Level classe. Cependant, j'appellerais également le Level activité, car il affiche des niveaux.

    Deuxième exemple

    J'ai une activité qui joue une scène coupée. Il affiche essentiellement plusieurs images d'affilée. L'information sur laquelle l'image est affichée pour combien de temps est stockée dans une classe distincte. Comme dans le cas précédent, j'appellerais naturellement les deux classes CutScene .

    Comment résoudriez-vous ces problèmes de dénomination? Nommez les activités LevelActivity et CutSceneActivity ? Nommez les classes de représentation LevelModel et CutSceneModel ? Autre chose?

  • Comment faire une copie d'un fichier dans Android?
  • Android twitter4j télécharger l'image
  • SetImageResource Vs setDrawable
  • Comment convertir le fichier WAV / OGG en fichier FLAC dans Android?
  • LockCanvas () vraiment lent
  • Comment créer EditText avec des coins arrondis?
  • 2 Solutions collect form web for “Nom d'activité Android”

    Je résolvent ces problèmes soit en prévision ou en postfixant des classes avec leur "type", comme vous l'avez suggéré à la fin de votre question:

    • LevelActivity , GameActivity , MainActivity , …
    • CommentsListAdapter , …
    • CheckNewCommentsService , …
    • etc.

    Mais je fais généralement une exécution pour les classes de modèle, qui sont les objets qui contiennent ces données: je nommerais toujours mon niveau de niveau de niveau de classe, et non LevelModel , pour indiquer que je manipule et que je travaille avec un niveau.

    Une autre solution (plus long pour taper ^^) pourrait être d'utiliser des noms entièrement qualifiés (voir ici ) lors du référencement de vos classes:

    • com.something.yourapp.activity.Level
    • com.something.yourapp.model.Level

    Avec cela, vous savez toujours quelle classe est vraiment utilisée.

    En général, la meilleure façon de nommer les composants d'application Android est d'ajouter son "type de composant" en tant que suffixe. Exemple :-

    • LevelActivity (LevelActivity extends Activity)
    • InboxUpdateService (InboxUpdateService extends Service)
    • ContactsContentProvider (ContactsContentProvide extends ContentProvider)
    • SMSBroadcastReceiver (SMSBroadcastReceiver extends BroadcastReceiver)

    En nommant l'utilisation de la méthode ci-dessus, il y aura des chances minimes de perdre la trace lorsque vous travaillez sur un grand flux de code avec beaucoup de noms similaires dans votre application.

    Donc, nommez vos activités avec le suffixe "Activité".

    Et nommez la classe qui fournit des données à votre LevelActivity en tant que Level .

    En contradiction avec la deuxième partie de la réponse de Pascal MARTIN, vous pouvez également utiliser LevelActivity et LevelInfo ensemble. Parce qu'ils offrent des différences claires comme indiqué ci-dessous:

    Distinguez les noms de telle sorte que le lecteur sache ce que les différences offrent – Robert. C. Martin, auteur de Clean Code

    Mais le suffixe est souvent redondant sur la base cognitive. Utiliser uniquement le mot Level souligne clairement que le Level classe offre des informations sur Level. Donc, utilisez Level pour classe qui fournit des données sur Level.

    REMARQUE: si vous utilisez des suffixes, choisissez un mot par concept. Par exemple: Si vous utilisez le suffixe Info pour identifier les classes qui offrent des informations, seules les Info doivent être utilisées (pas Data ou Model ) dans votre application pour éviter les confusions.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.