2011-06-27 3 views
6

J'ai regardé de nombreux tutoriels maintenant sur la façon de programmer pour Android - J'ai même commencé à créer des programmes moi-même. Cependant, j'ai remarqué que mes programmes ressemblent tous à des procédures, tandis que Java devrait fonctionner avec l'orientation objet. J'ai essayé de résoudre ce problème, mais j'ai trouvé un problème. La classe primaire de mon programme - celle qui est exécutée au début de l'application (sous com.testprogram.www par exemple) semble être un mélange de couches d'écran et de contrôle en même temps.Quelle est la bonne façon d'Object Orient un programme Android?

Dans tous les didacticiels que j'ai trouvés, je vois un objet visuel récupéré à partir de la vue main.xml (par exemple, un bouton - cette récupération indique que ce serait le calque 'contrôle' pour le traitement) et juste après cela objet est enregistré à un écouteur de quelque sorte (dans ce cas OnClickListener - cela devrait être fait à l'écran, pas dans le contrôle, non?).

Est-ce que cela doit être comme ça? Cette classe principale sous le paquet www est quoi? Le calque 'screen' ou le 'control'? Cette classe est-elle le bon endroit pour faire ce que j'ai mentionné ci-dessus? Est-ce fait de cette façon parce que l'interface basée sur XML est incapable d'enregistrer les écouteurs Java? Quelqu'un sait-il un bon endroit pour moi d'aller chercher des références sur la façon d'OO pour Android?

Répondre

0

Si vous utilisez les modèles standard de mise en page en XML, les chaînes dans strings.xml, l'activité des gestionnaires et placer la logique de base/algorithmes/magasin d'extraction des données une classe séparée (la classe du modèle) vous serez sur la bonne voie pour écrire un meilleur code.

Pour tester votre architecture,

1) Demandez-vous si vous pouvez faire un test unitaire sur la logique de base/algorithme/banque de données (la classe modèle) séparée de l'interface utilisateur. Pouvez-vous réutiliser la classe de modèle dans un autre projet avec une interface utilisateur différente sans difficulté?

2) Ensuite, demandez-vous si vous pouviez porter votre application dans une autre langue en fournissant simplement un fichier optionnel strings.xml. Ainsi, la présentation (View) se trouve principalement dans main.xml. Le code de gestion des événements et du système (Controller) se trouve principalement dans MyActivity.java L'algorithme/magasin de données se trouve principalement dans Model.java.

La très grande séparation se situe entre l'algorithme de base/magasin de données et l'interface utilisateur. L'algorithme de base/magasin de données devrait être ignorant des détails de l'interface utilisateur. Sous UNIX, il s'agit du modèle INTERFACE (VC) -ENGINE (M). Séparer la vue du contrôleur ne fait qu'amplifier l'architecture.

espoir qui aide, JAL

1

Vous pouvez vérifier deux questions concernant deux modèles d'architecture différents.

0

MVVM avec son utilisation de la liaison est très utile dans la programmation Android.Il aide à réduire la structure d'activité surchargée qui existe actuellement dans l'infrastructure. Vous trouverez ci-dessous une bibliothèque de liens open source que vous pouvez utiliser.

http://code.google.com/p/android-binding/wiki/Motivation

Questions connexes