IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

ou mettre l'acces aux données? [GRASP]


Sujet :

Design Patterns

  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut ou mettre l'acces aux données?
    Bonjour,

    je présente par avance mes excuses sur la naïveté qui pourra tranparaitre a la lecture de cette question, et j'espère ne pas m'être trompé quant au choix du forum sur lequel je devait la poster.
    Un exercice bien scolaire que je suis en train d em'evertuer a realiser consiste en la creation d'un site internet d'un cinema fictif. On doit pouvoir consulter les horaires, telecharger une version pdf du programme hebdomadaire en consultation, ajouter des films les supprimer leur affecter des horaires etc.. en administration un probleme d'ecole classique je presume?
    Bref je tente de conceptualiser ceci en UML, et j'ai un schema en merise de ma base de données ... je suppose qu'il est largement possible de modeliser sa base en uml et que je ne prends pas necessairement un chemin tres pro en melangeant les 2.. vous pardonnerez mon ignirance en la matiere. Bref je tente de penser et j'imagine faire une classe "Film"... un film a t'il reellement un role a jouer dans mon systeme (c'est que suite a la lecture d'un ouvrage intitule "Deign Patterns explained a new perspective on object orient" je me plais a croire qu'il faut chercher les objets par les role qu'ils doivent jouer plus que comme des sortes de structures avec ajout de fonctions. Imaginons que mon film ait bien un roel a joeur je conserve ma classe film... ok seulement les données d'un film sont dans la base... de sorte qu'il faut acceder a ma base pour donner les parametres au constructeur.
    SI je donne l'identifiant dans la BD de mon film au constructeur ( ma premeire idée)... ca marche, mais si je dois instancier un objet par film a l'affiche par exemple ca me pose 2 problemes :
    - c'est moche car j'ia du code acces aux données dans mon constructeur moi ca me gene d'un point de vue esthetique
    - si mon cosntructeur ouvre et ferme une connexion avec la base ... j'ai pitié des reponses de celle ci lorsque je devrai instancier tous les films et donc jouer a j'ouvre et je ferme des connexions en continue...

    j'en conclu donc qu'il doit exister une solution générique qui consiste par exemple a créer des classes dont c'ets le role d'aller chercher dans la base des données pour les données a des constructeurs d'une famille d'objets et a prendre cette famille d'objets pour la deverser dans la base en update et insert ou la supprimer en cas de delete... seulement ce principe qui me pariat etre une evidence a laquelle chaque developpeur est confonté , je n'arrive a le materialiser a savoir a quoi doit ressembler cet objet intermediaire ce qu'il doit faire exactement , ou je dosi mettre le code d'accès aux données... et c'est la que je vous serais reconnaissants de m'éclairer. Je vais peut etre passer pour le navet de service avec ça mais tant pis ca me perturbe beaucoup
    PS: je fais ce projet en PHP5 et MYSQL 5 ( imposé pas un choix) mais je suppose que la solution a ce probleme est générique?
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  2. #2
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Salut

    Ce forum ne peut répondre à un tel projet bien vaste. Il est plutôt dédié à des questions précises.
    Il faut que tu fasses une analyse de ton système d'information. Regarde les tutoriels et la FAQ d'ici. Je te conseille aussi d'emprunter ou d'acheter des livres pour ça. Celui de D. Nanci pour Merise, ou

    http://www.eyrolles.com/Informatique/Livre/9782212110982/Livre_De_UML_a_SQL.php

    pour UML.

  3. #3
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut l'analyse
    Peut etre que dans la masse de mon texte informe j'ai noyé la réelle question . Je ne cherche pas de solution toute faite a mon systeme d'information. Je sais quels sont les besoin, les cas d'utilisation de mon systeme, les sequences correspondant a ces différents cas. J'ai deja ma base de données. Ce qui m'interesse concretement, c'est de savoir, lorsque l'on a un objet ou une famille d'objet (ici mes films) qui sont des données persistantes, ou met on le code d'accès aux données et a qui doit on déléguer la charge de l'instantiation.
    Par exemple:
    - je crée un objet "ServicePourLesFilms" qui prend un identifiant de film et renvois le film associé?
    Dans ce cas je donnerais a une methode de ce meme objet "ServicePourLesFilms" mon film a updater dans la base.
    Dans ce cas le code sql et les acces données sont dans des objets que j'appelerais "De service"
    -je crée un constructeur de film qui prend l'id du film et accede lui meme a la base
    Dans ce cas le code sql est dans l'objet lui meme


    CE probleme est applicable non seulement a mon site de cinema mais a mon avis a toute conception objet contenant des données persistantes.
    C'est pourquoi je me suis plu a penser qu'il devait exister des éprouvées a ce probleme....

    merci pour ta reponse, en esperant etre plus clair cette fois ?
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  4. #4
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut Re: l'analyse
    Citation Envoyé par cladsam
    CE probleme est applicable non seulement a mon site de cinema mais a mon avis a toute conception objet contenant des données persistantes.
    C'est pourquoi je me suis plu a penser qu'il devait exister des éprouvées a ce probleme....

    merci pour ta reponse, en esperant etre plus clair cette fois ?
    Un peu + clair pas encore limpide...
    Plusieurs solutions existent en effet sous la forme de méthodes. Il n'y a pas de solution miracle et unique. L'important à mon sens est de respecter l'encapsulation des données. Tu devrais lire des ouvrages sur la conception objet généralistes.
    Pense à activer 'Résolu' si tu veux en rester là.

  5. #5
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Merci je suis vraiment très content de m'apercevoir du sérieux et de la vitesse a laquelle on peut obtenir de l'aide sur ce forum
    A l'heure actuelle j'ai en ma possession le livre "modélisation objet avec UML" de Muller et Gaertner chez Eyrolles.
    Je n'ai helas ni le temps ni la possibilité d'investir dans d'autre ouvrage dans le cadre de ce projet scolaire que je dosi rendre sous peu mais je ne manquerai pas de suivre ton conseil au plus tot parceque j'ai vraiment envie de m'armer pour trouver a l'avenir des reponses correctes et efficaces à ce genre de problèmes.
    En attendant ce moment , pourrais tu me pister vers des tutoriaux ou documents en ligne qui seraient gratuits et me permettrait de m'aiguiller pour faire mes choix pour ce projet?
    Cordialement
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    J'ai comme l'impression que ce que tu recherches est le pattern "data access object". Tu trouveras aisément des description du pattern DAO, par exemple sur le site de sun.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Hibernate]Accès aux données BDD via Hibernate
    Par LESOLEIL dans le forum Hibernate
    Réponses: 8
    Dernier message: 17/05/2005, 20h39
  2. [SGBD]Optimiser le temps d'accès aux données (schéma BD)
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 08/10/2004, 18h33
  3. [débutant] avoir accès aux données de la base BCDI 3
    Par Valichou dans le forum Bases de données
    Réponses: 7
    Dernier message: 06/05/2004, 13h13
  4. accès aux donnée d'un DBGRID
    Par relax_06 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/03/2004, 23h06
  5. [TDataModule] Intérêt de séparer les accès aux données?
    Par Cornell dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/09/2003, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo