Sujet: Re: définition d'un objet
De: surcroma (l' arobase) gmail.com (surcroma@gmail.com)
Groupes: fr.comp.objet
Organisation: http://groups.google.com
Date: 19. Sep 2006, 23:38:47
fgirault@gmail.com a écrit :
surcroma@gmail.com wrote:
J'aurai aimé savoir s'il était préférable qu'un objet soit quelque
chose, c'est à dire assimilable à un être concret, plutôt qu'il
s'occupe de quelque chose.
le "plutôt" me gêne car un objet regroupe les deux à la fois.
Un objet est une instance d'une classe qui définie des attributs
(taille, couleur ...) et des méthodes (sonner, clignoter, changer de
chaîne ...).
Il peut "s'occuper" d'autres objets dans divers types de relation avec
ceux-ci : utilisation / délégation, aggrégation, composition ...
Bref, rien d'exclusif, tout dépend du contexte.
À question floue ... réponse vague ;)
Je n'ai peut être pas été très clair dans l'énoncé de ma
question. En fait en disant s'occupe de quelque chose, je voulais dire
ne s'occupe que de quelque chose et donc qu'un objet puisse directement
être assimilable à une fonction. Pour simplifier, est-ce qu'un objet
peut être dénué de cette "consistance" qui pourrait caractériser un
objet et remplir exactement le même rôle qu'une fonction, "être" une
fonction ?
En fait ma question se réfère à un cas bien concret. Il s'agit d'un
programme faisant évoluer, graphiquement, des robots dans un même
espace. Ces robots possèdent un certain nombre de roues et ont bien
sûr la possibilité de se déplacer, avec différents types de
déplacements (tourner à gauche, avancer etc.) Evidement un robot
ayant 2 roues n'avancera pas de la même manière qu'un robot en ayant
4 car le nombre de moteurs requis sera différent.
La problématique vient lors de la création des robots. Il faut en
effet les initialiser en leur spécifiant les déplacements qu'ils
seront amenés à effectuer. Je cherchais à savoir si l'idée de
créer des classes implémentant les déplacements (comme reculer,
demi-tour etc.) de ces robots était une bonne idée. Bien sûr il
faudra créer une classe différente pour chaque déplacement
correspondant à un nombre de roues (avancer_2_roues, avancer_4_roues
reculer_2_roues etc..). Lors de l'initialisation des robots, il
faudrait alors donner des instances de ces classes au constructeur (le
langage est le java) de la classe robot.
J'aimerai savoir si une telle solution est adaptée.
Merci.