février
2009
Le problème à modéliser est dans le titre ! Je ne sais pas trop où ça va me conduire mais on verra bien … (non, non, pas la camisole !!!)
Si je suis un objet, je suis une instance mais une instance de quoi ? Informaticien/Informaticienne, Homme/Femme, EtreHumain, Mammifère, EtreVivant, Etre … ?
Les idées de classes jetées en pâtures indiquent déjà une potentielle chaîne d’héritage mais laissons la de côté pour l’instant.
Quelle classe choisir ? A quel niveau je me situe ?
Pour moi, c’est le problème qu’on veut modéliser qui doit trancher.
Le plus général : Je dirai que c’est en faire un peu trop !!!
Dans l’esprit du client, c’est ni un problème de philosophie, ni un problème de biologie !
Le plus spécialisé : Je dirai que c’est un peu trop limitatif au goût du client !
– Si je veux changer de profession, comment je fais ?
– Si j’étais amené à choisir les deux sous classes Homme / Femme, à quoi rattacher Informaticien ? A Homme ? Dans ce cas, il me faudrait une sous classe Informaticienne et donc potentiellement, une explosion du nombre de classes …
Doit-on avoir deux sous classes d’EtreHumain : Homme & Femme ou est-ce que l’ajout d’un attribut sexe à la classe EtreHumain ne suffit-il pas ?
Cette question de modélisation entre l’ajout d’un attribut ou la création de sous classes se pose très souvent en POO.
On peut d’ailleurs le voir pour de nombreux attributs (pour ne pas dire tous) :
- attribut sexe vs classes Homme/Femme
- attribut nationalité vs classes Français/Italien/Allemand/…
- attribut profession vs classes Informaticien/Philosophe/…
Personnellement, j’ai pour règle de ne pas créer de sous classes tant que le comportement ne diffère pas et que les attributs en question ne sont pas complètement inappropriés.
Dans mon exemple flou, deux sous classes ne se justifient pas pour l’instant, optons donc pour l’attribut sexe.
Aujourd’hui, je suis donc un objet de classe EtreHumain qui aura son attribut booléen « sexe » à 1 !
A suivre …