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

JDBC Java Discussion :

[principe de base] Objets composés d'objets


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut [principe de base] Objets composés d'objets
    Bonjour a tous,

    je me pose une question sur les objets.
    Lorsqu'on a un objet composé de plusieurs objets en guise d'attributs. Faut il nescessairement loader tous les objets qui le compose ?

    Par exemple j'ai un objet myObject
    MyObject
    - Public A varA
    - Public B varB
    .......

    Et j'ai une classe MyObjectService

    MyObjetService
    -GetMyObjectByID()

    Dans ma méthode GetMyObjectByID faut t'il que je load aussi tout les objets A et B. En appellant eventuellement getAByID() et getBByID() contenu respesctivement dans AService et BService ???

    En fait je me pose cette question car je me dis que ca peut etre parfois tres lourds de ce trimballer tout un objet, mais d'un autre coté je ne me vois pas faire des méthodes du genre

    GetMyObjectByID_Light() et GetMyObjectByID()

    J'espere que vous aurez compris ma problématique !!!

    Merci par avance de vos réponses.

    B.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Pour compléter ma question car je pense qu'elle ne doit pas etre tres claire

    par exemple, j'ai un objet "bibliotheque" et un objet "livre"

    mon objet bibliotheque contient une collection de "livres"

    je déclare donc mes deux objets avec leur attributs respectifs, et je crée une classe "bibliothequeServices". Dans cette classe j'ai une méthode, loadBibliotheque()

    Si je dois afficher à l'ecran le nom,l'adresse, le tel etc etc... de ma biblio et bien je serai tenter d'appeller la méthode "loadBibliotheque". Mais pour l'affichage je n'ai pas besoin de loader toute la collection de livre qu'elle contient !!!

    C'est pour ca que je me dis qu'il faut ecrire plusieur méthode du genre LoadAllBiblio() et LoadBiblioWihoutBook() ????

    Mais ca me semble pas tres "Design" comme méthode !!!

    Pourriez vous m'aiguiller sur la bonne voie

    Merci

    B.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 78
    Points : 73
    Points
    73
    Par défaut
    salut,
    imagine que tu es 100 000 livres dans ta bibliothèque.
    ce n'est pas parce que tu appelles ton objet bibliothèque que tu va charger les 100 000 objets "livre" avec.
    par contre qd tu charge un objet livre tu dois passer par la bibliothèque.
    la notion d'héritage est quelque chose de pratique

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Tu devrais passer en parametre (ou un truc du genre) pour informer à ta methode loadBibliotheque si tu veux ou non charger les livres.
    En fait, il n'est absolument pas nécessaire de toujours tout charger, surtout dans le cas de ton exemple !
    C'est un peu le meme fonctionnement que Hibernate par exemple, qui a une option "lazy" qui permet de dire si on désire charger ou non les objet encapsulés quand on charge un objet (en accés en base).
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  5. #5
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    utilise le lazy loading
    des produits comme hibernate le propose
    lorsque tu vas loader ta bibliotheque, tes livres ne seront pas chargés
    ils le seront dès que tu vas utiliser la collection des livres en demandant par exemple une énumération de ceux ci.

    edit : arf vienna est plus rapide que moi : me fais vieux moi
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci a tous, et comment fonctionne hybernate en interne, il passe des paramametre lui aussi ?

  7. #7
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    non
    il utilise des collections "évenementielles"
    c'est à dire que dès qu'un accès à une collection non chargée est detecté, il charge la collection
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Est ce que ca veut dire que l'objet métier bibliotheque est complétement lié aux services ????

    Car je suppose que si je fait maBiBlio.getLivres() et s'il n'a pas les livres de chargé la méthode getLivres() de ma classe Bibilotheque va appeller la méthode getLivres de "LivreService" ?????

    quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Class Biblio {
     
    int biblioID;
    Vector myBooks ;
     
    public Vector getLivres(){
     
          if (myBook == null){
                 LivreService colBook = new LivreService()
                 myBook =  colBook.getLivres(biblioID)
           }
          return  myBook 
    }
    }
    Le découpage me semble bizarre !!! Je dois me mélanger les pinceaux

  9. #9
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    c'est lié au service parce que tu utilises une couche de service pour charger tes données. Mais dans l'idée Hibernate fonctionne comme cela.
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci Austin,

    Et est tu d'accord avec ma pseudo implémentation ? (juste pour voir si j'ai tout compris !!)

    Car j'ai toujours pensé que la couche de service construisait les objets que si on avait besoin d'un objet particulier on passait toujours pas cette couche pour le battir.

    Or je m'appercoit que dans l'objet de description, on peut aussi appeller des méthodes de la couche services !!! Je trouve ca dérangeant, mais bon débute aussi !!!

    Ce mode de fonctionnement est un classique pour les Designers ???

  11. #11
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    ben disons que c'est limite limite quoi
    le couplage est super fort entre tes objets métiers et ta couche de services

    le problème quand tu gère toi meme la persistance de tes objets, tu arrive vite à certaines limites


    à ta place j'utiliserai un système de mapping objet/relationel type hibernate pour gérer toute cette mécanique. En plus tu bénéficiera du cache, du hql, etc.. que des bonnes choses quoi.
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bon je vais me renseigner sur hybernate merci austin

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

Discussions similaires

  1. Base de données Orientée Objet NeoDatis ODB
    Par osmadja dans le forum Persistance des données
    Réponses: 1
    Dernier message: 23/12/2007, 08h33
  2. Réponses: 1
    Dernier message: 18/07/2007, 13h54
  3. Objets composés et composites
    Par yanis97 dans le forum Langage
    Réponses: 8
    Dernier message: 24/10/2006, 11h20
  4. Base de Données ou objet en lecture seule?
    Par ben_skywalker dans le forum Access
    Réponses: 6
    Dernier message: 01/06/2006, 08h47
  5. [SGBDOO] Base de données orientée objet
    Par Jaona dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 14/04/2003, 11h07

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