-
Acces à la persistance
Bonjour,
Est-il "possible" qu'une classe "control" accède directement à la couche "persistance"?
Ex :
Un horloger doit saisir les pièces qu'il a utilisé pour une réparation. Il doit donc accéder à la liste des réparations. Je vais donc devoir récupérer un collection d'objets "réparation". Est ce que c'est le controleur qui demande cela directement à la couche DAO ?
[edit]
Je pose cette question car je n'ai pas trouvé d'explication dans les divers livres que j'ai pu consulter (Modeliser un site e-commerce, Uml en action, Uml en pratique). Je vois en général apparaitre sur les diagrammes de séquence un multi-objet "toutes les réparations" qui semble tomber du ciel !
[/edit]
Merci
David
-
Voici la solution que j'ai mise en oeuvre temporairement :
Une simple classe "Réparations" (avec un s !)
...
Cela semble convenir. C'est elle qui fait la liaison avec la couche de persistance.
David
-
Tu mentionnes pas mal de termes : Horloger, réparation,...
Quels sont ceux que tu manipule dans ton application, et lesquels sont stockés en BD ?
Pour l'accès aux données, on fait en général, dans une couche "DAO", des classes spécifiques pour chaque classe perssistante : ReparationDAO par exemple. Cette classe contient le code SQL d'accès à la base.
Les autres classes passent par les DAO pour charger les données
-
Le dépot d'une montre est enregistré sur le logiciel avec les coordonnées du client par une personne à l'accueil.
Quand le technicien a fini la réparation, il note les opérations effectuées et les pièces utilisées pour cette réparation. Donc il doit accéder aux réparations en cours, choisir la bonne, puis noter ces infos.
En BD on garde(rait) les clients, les dépots, les réparations, les pièces et leur tarif, les opérations et leur tarif.
Ce qui me gène c'est comment récupérer ces réparations... Je pensais intégrer dans mon diagramme de classe, une classe Reparations qui serait une collection de Reparation (sans s) et qui ferait le lien avec ReparationDAO. J'accederai à ma classe Reparations par le controleur de ma vue GestionReparation.
J'espère avoir été plus clair...
David
-
Attention, en général, on ne créé pas de classe pour des collections d'objet. L'exception est lorsque la collection doit posséder un comportement particulier, comportement non rempli par les conteneurs standards du JDK (si tu fais du Java).
Si tu veux afficher les réparations, peut être que le mieux est de créer la méthode getAllReparations dans la classe ReparationDAO et utiliser cette méthode dans ton contrôleur. Le type retourné par getAllReparations pouvant être un ArrayList, Vector ou autre (toujours en Java). Pas besoin donc d'avoir un type particulier pour cela.
Conclusion, en modélisation on ne parle presque jamais de classes "collections". Les collections sont issues d'associations de type 1-N ou N-N entre les classes du modèle.
-
Merci pour ta réponse,
Ma classe collection était inspirée de ça : http://dmi.ensica.fr/Cooj/downloads/CorrectionBiblio.pdf
Dans cette étude de cas d'une bibliothèque il y a des collections "entity" comme "emprunteurs", "exemplaires"...
Mais je vois ce que tu veux dire.
David
PS : c'est bizarre, je n'ai trouvé dans aucune ressource un exemple d'appli avec une persistance, à chaque fois ce côté est vaguement évoqué...il faut que je revois mes sources ! Je vais voir du côté de la langue de Shakspeare