Aller au contenu

[Débutant]Conception / Architecture


MrAurelien

Recommended Posts

Bonjour à tous,

Je poste un message sur l'architecture de mon application parce que je dois l'avouer, n'ayant développé que de ridicules outils sur Windows Mobile en C#, je n'ai jamais vraiment réalisé un projet comme je souhaite le faire maintenant sur mon Milestone.

Pour commencer voilà approximativement ce dont je voudrais faire:

Je voudrais pouvoir gérer une base de donnée afin de gérer des prêts de livres, magasines et autres types d'objets. Visuellement parlant l'application me permettrait de lister les personnes et les prêts associés, d'ajouter/modifier/supprimer des prêts ce qui est normal. A chaque fois que je contacte quelqu'un je met à jour un suivi ou il figurera la date que je l'ai vu, ce qu'il a rendu, ce qu'il m'a ré-empreinté etc ce qui redéfiniera ou non des rappels à propos du/des prêts.

Pour gérer ce suivis, je voudrais réaliser un processus qui tourne en background pour ajouter des interactions système avec l'utilisateur.

Par exemple, si mon délais de prêt arrive à son terme pour une personne, je voudrais envoyer une notification système pour avertir le gestionnaire, celui qui utilise sur son téléphone mon programme. De la même manière, imaginons qu'un tel me téléphone et qu'il doit me rendre un article, ce processus jouerai un son particulier ou ajouterai une notification visuelle pour m'en faire rappeler.

Biensûr on peut pousser le concept et aller loin, même pour ce genre de logiciel... mais une grosse partie de l'idée ce trouve expliquée ci dessus.

Maintenant je manque de visibilité sur la conception:

Je pourrais modéliser mes différents objets comme par exemple les classes représentant les data:

Personne (nom, prénom, listeDePrêts...)

Pret(date, listeObjetsPrétés...)

Objet(nom, type, autreInfo...)

Quelques question à ce propos: comment stocker et récupérer ces objets? Dois je créer des méthodes dans ces classes 'data' qui iront questionner la base pour remplir les attributs de mon objet ou les mettre à jour? Ou dois je faire une classe spécialisé, je dirais une classe dite 'Manager' pour manipuler la BDD pour produire ces objets en mémoire et les sauvegarder ? Serait t-il mieux de travailler directement dans la base de donnée, une sorte de superclasse pour faire ça ?

C'est là que j'aimerai savoir comment vous organiseriez votre code pour cette application.

J'aurais certainement d'autres questions par la suite mais pour l'instant cette partie de gestion de l'information me bloque un peu, surtout que je considère que mon environnement de travail est plutôt restreint en terme de mémoire, puissance de calcul donc j'ai besoin de vos lumières ... :D

Merci de votre aide ;)

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Plusieurs point pour répondre (peut-être) en partie à tes questions ;) .

- Dans tous les cas il te faut un modèle de données, c'est à dire des classes Java comme celles dont tu parles (Personnes ...).

- Ensuite pour la persistance, il faut que tu fasses ton choix, car il y a plusieurs solutions (http://developer.android.com/intl/fr/guide/topics/data/data-storage.html).

- Pour ce qui est du passage de l'un à l'autre, tout dépend de quand, comment et à quelle fréquence tu souhaites charger/sauver tes objets, est-ce couteux en temps, ... ? Tu peux t'inspirer des design patterns (http://fr.wikipedia.org/wiki/Design_pattern et http://conception.developpez.com/cours/?page=archi-cat#dp-theorie).

- Dernier point, tu as également une autre option avec des librairies qui te proposent un mapping automatique entre tes objets et ta persistance (http://fr.wikipedia.org/wiki/Mapping_objet-relationnel), avec plus ou moins de configuration, plus ou moins de possibilités, plus ou moins de performances ...

J'espère que ça répond un peu à tes questions !

A+

G.

PS : Petit conseils pour tous tes nommages, passe à l'anglais systématique ça t'évitera pas mal de galères (Personne, nom, prénom -> Person, name, firstName ...).

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
Hello,

Plusieurs point pour répondre (peut-être) en partie à tes questions ;) .

- Dans tous les cas il te faut un modèle de données, c'est à dire des classes Java comme celles dont tu parles (Personnes ...).

- Ensuite pour la persistance, il faut que tu fasses ton choix, car il y a plusieurs solutions (http://developer.android.com/intl/fr/guide/topics/data/data-storage.html).

- Pour ce qui est du passage de l'un à l'autre, tout dépend de quand, comment et à quelle fréquence tu souhaites charger/sauver tes objets, est-ce couteux en temps, ... ? Tu peux t'inspirer des design patterns (http://fr.wikipedia.org/wiki/Design_pattern et http://conception.developpez.com/cours/?page=archi-cat#dp-theorie).

- Dernier point, tu as également une autre option avec des librairies qui te proposent un mapping automatique entre tes objets et ta persistance (http://fr.wikipedia.org/wiki/Mapping_objet-relationnel), avec plus ou moins de configuration, plus ou moins de possibilités, plus ou moins de performances ...

J'espère que ça répond un peu à tes questions !

A+

G.

PS : Petit conseils pour tous tes nommages, passe à l'anglais systématique ça t'évitera pas mal de galères (Personne, nom, prénom -> Person, name, firstName ...).

Salut blckhs_prd,

Merci beaucoup pour ces quelques précisions, je vais m'y pencher sérieusement dès que j'ai un peu de temps (je suis un peu overbooké en ce moment ... )

Désolé de te remercier si tardivement.

En tout cas si vous avez une préférence en la matière (stockage des données) je suis curieux de connaitre votre avis.

Aurélien

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...