par
Predator » 27 mars 2008, 14:14
Salut,
Oui en effet créer un tableau pour mettre des variable dedans n'a pas énormément d'intérêt.
En modélisation (UML ou autre) on s'attache a faire apparaitre clairement les attributs pour plus de clarté. Il est vrai qu'une classe avec une variable tableau n'a pas grand intéret dans un diagramme de classe sauf cas particulier.
Dans mon cas j'utilise un tableau associatif avec comme clé le nom de l'attribut. Seulement j'avait l'impression de rentrer en "contradiction" avec la modélisation en utilisant un type tableau.
Donc Ryle, pointer un élément du tableau revient a pointer une variable. Je ne parcours pas le tableau étant donnée que j'ai la clé.
Pour vous ressituer un peu, j'essaie de faire un développement le plus générique possible en apportant beaucoup d'importance au couche. L'utilisation d'un tableau me facilite beaucoup la tache.
En fait, de défini mes objets (structure, classe, attribut,....) dans un fichier xml.
Au chargement, j'ai une classe qui récupère les structure.
Ensuite j'ai une classe abstraite qui gère les comportement généraux des objets. Lors de l'instanciation d'un objet, elle calque la structure correspondante.
Ainsi toutes mes classes sont quasiment identiques hormis certain traitement.
Enfin j'ai une classe gérant la persistance des données. Pour insérer un objet dans une base, j'utilise ma classe de persistance qui prend mon objet en paramètre et juste mon objet.
Ma classe de persistance charge aussi la structure des tables depuis le fichier xml. Ainsi elle génère automatiquement mes requetes que ce soit insert/update/select automatiquement et quelque soit l'objet en paramètre.
J'utilise le même procédé pour mes collection. J'ajoute un filtre (ex : totalCmd > 200€) et il va me chercher les infos dans la bonne table. En retour, il me creer mes objets sur 1 niveau ou récursivement. Ainsi, si j'ai une table commande avec un numéro de commande et un numéro de client, lors du chargement, il va regarder les champs, il va voir que le numéro client correspond a un objet Client et il va le charger et ainsi de suite. Du coup, dans mon tableau de mon objet Commande, dans le champ idClient, j'aurai un objet et non plus une valeur.
Sinon pour le bench, j'ai utiliser un cas très simple :
un objet commande initialiser et charger. Cette objet commande a un attribut "totCmd";
par la méthode du tableau, mon get renvoyait :
return $this->tab['totCmd']
en passant par une variable :
return $this->totCmd
En ce qui concerne l'appel :
$test = $cmd->getTotCmd();
Mais je suis tout a fait d'accord que le bench n'a pas grand intéret étant donné que l'accèes est de l'orde de la micro seconde.
Mais quand il s'agit de créer une collection d'objet resultant d'une requete sur 10000 tuples qui renvoi 1500 tuples, le bench a déjà plus d'interet.
enfin voila......