Bonjour,
je suis étudiant en 4ème année et je profite de mes vacances pour prendre de l'avance sur la 5ème année.
J'ai donc commencé le premier TP qui concerne l'inversion de contrôle et les conteneurs. En l'occurrence on doit utiliser PicoContainer, j'ai bien regardé la doc, mais je ne suis pas certain d'avoir compris la totalité du contenu.
Pour faire simple, j'ai 3 classes : Repertoire, PersonneDAO, PersonneXMLDAO, Personne.
PersonneDAO n'est qu'une interface implémentée par PersonneXMLDAO.
Personne contient 3 champs pour le nom, le prénom et l'identifiant, le constructeur se fait en donnant 3 valeurs correspondant aux champs et avec une instance de PersonneXMLDAO.
PersonneXMLDAO contient le nom d'un fichier et un document, il y a une méthode : getAllPersonnes() qui renvoie une liste de Personnes, le constructeur se fait en donnant le nom d'un fichier.
Repertoire contient une liste de Personnes, et un PersonneDAO.
Pour l'ajout des composants dans mon conteneur, j'ai bêtement suivi la documentation, et j'ai ça :
La ligne en commentaire correspond à ce que je pensais devoir faire avec la liste des personnes, cependant, ça ne marche pas, ma liste reste vide, ce qui est normal étant donné que la liste est juste initialisée et la méthode getAllPersonnes() n'est jamais appelée. Donc j'ai écrit la ligne suivante, mais ça ne me paraît pas cohérent étant donné qu'on stocke dans le conteneur un élément qui est instancié et non pas juste une classe à instancier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 pico = new DefaultPicoContainer(); pico.addComponent("test-repertoire.xml"); pico.as(Characteristics.CACHE).addComponent(PersonneXMLDAO.class); //pico.addComponent(ArrayList.class); pico.as(Characteristics.CACHE).addComponent(pico.getComponent(PersonneXMLDAO.class).getAllPersonnes()); pico.addComponent(Repertoire.class); pico.getComponent(Repertoire.class).start(); pico.start();
Mon code est il actuellement correct ou mon raisonnement est il cohérent et mon code incorrect ?
Merci d'avoir lu
Partager