Reflexion OO

Petit nouveau ! | 2 Messages

05 juin 2009, 15:06

Bonjour,

Je me permets de vous poser une question au niveau organisation des objet.
Par exemple, prenons un objet membre.
class Membre{
   private $dateNaissance;
   private $pseudo
   //.....

   public function getPseudo(){

   }

   public function afficherProfil(){


   }

}
Avec une class membreCollection pour afficher une liste de membre, savoir si un membre est existant etc...

Ma question est la suivante, où mettre mes fonctions d'ajout, modification, et de suppression?

En effet, en les mettant dans la class Membre je pourrais profiter des setters pour vérifier la validité d'un membre, et ainsi tout centraliser. Mais cela ne me semble pas correct conceptuellement parlant.

Qu'en pensez-vous?

Merci d'avance.
Modifié en dernier par Paralele le 05 juin 2009, 16:05, modifié 1 fois.

Eléphant du PHP | 479 Messages

05 juin 2009, 15:55

Les fonctions d'ajout / modification / suppression sont les fonctions qui permettent d'ajouter un utilisateur, de modifier son profil ou d'effacer celui-ci ? Si tel est le cas, je dirais que c'est le boulot de ta classe Membre.
Si c'est pour ajouter ou retirer un utilisateur de la liste, ça devrait être au niveau de ta classe MembreCollection.

Petit nouveau ! | 2 Messages

05 juin 2009, 16:05

Effectivement, l'ajout suppression de membre.

MembreCollection est une classe qui permet de récupérer un tableau d'objet Membre : les 10 dernier membre inscrit, tout les membre inscrit en janvier etc. Ce n'est pas une liste " physique ".

Au sens Objet, je me demande si Add, Del, et Upd à un sens au sein de la classe Membre.

Pour m'expliquer, un objet voiture ne peut pas se construire lui meme.

Merci en tout cas pour ta réponse.

Eléphant du PHP | 111 Messages

16 juil. 2009, 10:33

L'instance de ton objet est un New - mais ta classe peut aussi bien être une classe de création qu'une classe de représentation ...

new Membre();

Si tu ne lui fournis pas d'identifiant entre parenthèses, alors c'est toi qui le construis.

Si tu lui fournis un identifiant, alors il est déjà construit.

Les méthodes :

save();
load();
delete();
getters et setters

Tu n'as pas besoin de plus pour un fonctionnement de base, normalement.
Le gros intérêt étant de gérer les méthodes dans une classe parente, dynamiquement, quand c'est faisable ...