Merci pour votre réponse,
Bon alors j'ai réorganisé mes projets en un seul workspace ça c'est fait.
Pour ce qui est des pojos j'ai, comme vous dites, utilisé des pojos à tout va pour contourner des problèmes que je ne sais résoudre (sans pointeur ou référence) mais j'ai réfléchi dessus et je ne vois toujours pas si j'emploie bien mes pojos ou non.
Bon alors pour être concrêt voici un exemple
J'ai une fonction qui prend en argument un objet et doit me rendre 2 objets de même type (type 'maClass' qui est finalement un genre de pojo).
Ce que j'avais fait c'est de créer une fonction :
public static boolean maFonction( maClass A, maClass R, maClass S) { /* ... */ return true; }
qui renvoie un booléen d'état (true si j'ai bien fait mon calcul, false sinon) et je renvoie mes 2 objets résultats R et S sans changer A.
Autre méthode que j'avais fait c'est de juste de ne pas la mettre en statique :
public boolean maFonction( maClass R, maClass S) { /* ... */ return true; }
et donc je n'ai en argument que mes objets de résultats.
Alors sinon voilà ce que j'ai fait ensuite :
je crée (encore) un pojo contenant 2 objets de type 'maClass' (donc un pojo contenant d'autres pojo, c'est sûrement pas très propre tout ça !) et je renvoie un booléen :
public boolean maFonction( monTypeGrosPojoAvecMesDeuxPetitsPojoDedans pojo ) { /* ... */ return true; }
je renvoie donc l'état de mon calcul dans le booléen et le résultat complet dans le pojo passé en argument.
pareil je peux la mettre en statique avec mon objet de base passé en argument :
public static boolean maFonction( maClass A, monTypeGrosPojoAvecMesDeuxPetitsPojoDedans pojo ) { /* ... */ return true; }
bon là ok j'aurais pu faire renvoyer le gros pojo par ma fonction et null si je ne peux pas calculer, mais si j'ai besoin d'un état de succès/échec un peu plus complet qu'un simple booléen j'aurais besoin de quelque chose genre :
public int static maFonction( maClass A, monGrosPojoAvecMesDeuxPetitsPojo pojo ) { /* ... */ return 0; }
où l'entier renvoyé indique quel genre d'erreur j'ai rencontrée.
Et enfin le dernier truc que j'ai fait c'est de créer un SUPER Pojo qui contient tout :
Mes 2 objets de type 'maClass' servant de résultat
et un booléen d'état de succès/échec dans mon calcul.
public static monSuperPojo maFonction( maClass A ) { /* .... */ return truc; }
Et évidemment je peux aussi faire ces deux dernières fonctions en non-statique.
Voilà rien que sur ce simple exemple j'ai plein de façon de faire
Alors quelle est la bonne, la mauvaise ? Je sens que vous allez me dire que tout dépend du sens de mes objets.
_____________________________
Et sinon je ne comprends pas bien ce que vous voulez dire par : "déporter la méthode vers un autre objet contenant un état interne".
Est-ce que vous voulez dire que dans mon type "maClass" je dois ajouter un membre 'flag' qui indique si oui ou non j'ai pu effectuer mon calcul ?
Ok ça je l'ai souvent fait dans d'autres contextes mais pour ce qui est de renvoyer les 2 objets, je ne sais pas trop ....
Voilà merci.
Partager